I think the bottom line is that you can't have it both ways. You either sample the mask in a way that is out of bounds in the other image (which cause unexpected behaviour as you sample bad values from the mask e.g
NaN), or you raise an error when you sample out of bounds.
The reason I added this explicit error is because it was very confusing when you sampled out of bounds because it often caused a vectorization error when building models such as AAMs. Now, at least, the error is explicit.
I think the current behaviour is fine as long as make a small tutorial that shows people why this behaviour is the case, and that by doing
.as_unmasked(copy=False) you incur almost no overhead for the warp which ignores the existing mask.