This remark is a bit too long for a comment, but regarding DanielShapero's remark with respect to changing the Jacobian matrix, for every degree of freedom $i$ corresponding to a Dirichlet boundary condition (BC), a common approach is to set $i$th row of the Jacobian matrix equal to the $i$th row of the identity matrix, meaning your (quasi-)Newton iterates should be linear systems that can be permuted into the form
\begin{align}
\left[\begin{array}{cc}A & B \\ 0 & I\end{array}\right]\left[\begin{array}{c}\delta x_{interior} \\ \delta x_{BC}\end{array}\right] = \left[\begin{array}{c}-f_{interior}(x^{k}) \\ -f_{BC}(x^{k})\end{array}\right].
\end{align}
As long as the initial guess to the nonlinear solve sets the Dirichlet BC degrees of freedom to the values specified in those boundary conditions, then at every iteration of the nonlinear solver, the Dirichlet boundary conditions should be satisfied, and $\delta{x}_{BC} = 0$ because $-f_{BC}(x^{k}) = 0$.
You can do something similar for functional iteration-type nonlinear solvers.
EDIT: If you zero out the rows of the permuted Jacobian matrix to get
\begin{align}
\left[\begin{array}{cc}A & B \\ 0 & 0\end{array}\right]\left[\begin{array}{c}\delta x_{interior} \\ \delta x_{BC}\end{array}\right] = \left[\begin{array}{c}-f_{interior}(x^{k}) \\ -f_{BC}(x^{k})\end{array}\right],
\end{align}
then the resulting rank-deficient system can be solved using least-squares direct methods (QR, SVD) or Krylov methods (which will calculate a Drazin inverse and converge to the correct solution). LU-based methods should return an error due to a zero pivot, and can't be used without reformulating the system in terms of the interior degrees of freedom only, which is a minor drawback of zeroing out the rows. Solving the reformulation $A \delta{x}_{interior} = -f_{interior}(x^{k})$ is probably preferable at that point.