This is actually a crucial change, which is something I'm having to produce horrible code to work around (I'm giving my classes `_data` attributes that override `view`, not at all pretty).

My guess is that it simply is an oversight, but really it seems one should not stuff something in arrays here when it doesn't obviously fit: that can still happen inside `_MaskedBinaryOperation`.

The specific problem I have for astropy quantities perhaps illustrates this best. There, we use a `Unit` class, which if multiplied with an numpy array, gives a quantity:
```
In[8]: np.arange(3)*Unit('m')
Out[8]: <Quantity [0,1,2] m>
```
It does this by setting `__array_priority__`, and thus its `__rmul__` method gets called. Now when I do
```
In[9]: np.ma.arange(3)*Unit('m')
Out[9]: 
masked_array(data = [<Quantity 0 m> <Quantity 1 m> <Quantity 2 m>],
             mask = False,
       fill_value = ?)
```
The reason is that because the unit gets wrapped in an object array, it looses its `__array_priority__` (and even if it didn't, it wouldn't help, since it is now an array; see #3164 by another astropy developer), and hence the actual multiplication of the unmasked array with the unit-inside-an-array proceeds by feeding every single number to the unit, which happily turns this into a quantity, so that one is left with a masked array full of objects. (Actually, since most installed versions of numpy do not have my NotImplemented bug fix from #3900, I cannot get the above to work at all, but at least with my hacks `unit*masked_array` works).

p.s.  I definitely should have changed the documentation -- will do so if you agree my change makes sense.