ensure coerce only applies to multiplication

It's simple: you wouldn't allow operations between `Money` that are in different currencies. If they are the same currency you can safely perform the operations.

Also if the currency is not explicitly defined, as in the case of Numeric, you can implicitly accept say the Numeric is in the basic unit and of same currency of the Money operand. I think I explained this bit a couple of times.

Well I hope I made my point clear in the previous comments. IMHO the operations are simple and can be well defined (and coerced where necessary / appropriate) without being confusing whatsoever.