That's a good point -- let ufuncs broadcast by whatever bizarre internal logic they use.

I hate to say it, but I think IDL may have this right -- scalars can be indexed as long as the index is 0.  That removes a lot of edge cases!