I tend to agree that explicit broadcasting is better than numpy's default behavior.
However, IMO operations on the n-d arrays is better defaulted to element-wise, and n-d with scalar default to element-wise too. Think about it, a lot of operations are not even commonly defined for 3-d and above, so why wasting the most straightforward (a+b, a*b, a/b) syntaxes on special-case matrix operations? In numerical computing, matrix math is only like 5% of the times and the other 95% are element-wise or tensor-like.