User error in raw transactions and in code are something to be very careful of. This has happened a lot.
Explicitly calling out the fee is a good improvement, and seems like something that should be considered in the future (all blocks after N need to have correct outputs, and have a way to tell miners). That's a nasty fork, and I'm not sure how much benefit there is to it.
Sometimes the correct thing to do is obvious. And, I suspect that
regulators like to look at issues like this one and just shake their heads and ask why, why, why? K.I.S.S.
The benefit is to the user (i.e., the customer), and by extension, to bitcoin itself.
Update:
I am curious to know if there are any statistics on users accidentally making this error of overpaying. Also, if anyone has written any code which would cull the blockchain looking for transactions that appear to fallen into this trap. Sometimes in order to see how big a problem is, you have to quantify it.