The nice thing is that if this dot-approach (or some other syntax with a similar effect) were implemented in Futhark, then because Futhark is statically-typed, all mismatches would be compile-time errors. Those are very hard to overlook :)
In the very common case of square matrices, I think the dotted and non-dotted operations are generally both valid?
They might be both valid but will generate a different output (int or range) leading to a compile time error downstream
I don't think that's generally the case, AFAIK the example of the matrix exponential example a bit further up would not be really distinguishable as a type from a regular matrix (with exponential elements).