Operator overloading seems to invite abuse for some reason. I can see
its utility eg. for matrix math, where the overloaded operators are
intuitive and do what most people would expect them to do. It's when the
overloaded operation is non-intuitive or has unexpected side effect when
overloading is a disaster.
In my experience, too many programmers do not have the discipline (or
experience) not to abuse certain language features, so the length of
rope provided by the language ought to be limited
Michal