I think @mwiebe did something along those lines at one point with the NA work, but it got pulled out.  I seriously want a where= kwarg in the ufunc architecture so that I can "fix" masked arrays making a copy of itself whenever one does a min or a max.