Ahh, I understand what you're doing now - thanks for the clarification.

On the final point, I see your point, and I think I'm OK with it.  

The one place where it's really important is in initialization, though: we definitely want an exception if, for example, someone does ``CartesianPoints(xarr*u.Mpc, yarr*u.Mpc,zrr*u.Mpc/u.Gyr)``, rather than having it silently fall back to a Quantity.  But I tested it right now, and that does indeed raise an exception, so I think this is fine.