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.
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.
Almost all users are using clients that do not overpay. Very few people mess with raw transactions. There are instances of people screwing up testing stuff or trying to be cute. You are trying to solve a problem that virtually does not exist and cannot be solved. If you want to use this use case, code it without making a mistake and test the hell out of it. Then your users won't screw up.