Actually, there *is* a way to solve this issue that does not require rewriting any existent code (only recompiling), and I've proposed it about ten years ago: make compilers utilize SEPARATE stacks for data and return addresses.
You know how they always start with automated message "This call may be monitored or recorded..."?
So I start the conversation with the rep like this:
Me: Oh hi, this call may be monitored or recorded, correct?
Consent given: the rep has just said that this call may be recorded [by me]. (Well, he doesn't think he did, but hey... who cares. I am not supposed to be a psychic, and this exchange is a semantically correct expression of agreement from the English language perspective.)
I spoke at length with one of the taxi drivers who signed up for Uber while he was driving me. He says that while he indeed gets less of gratuity, he's really happy: Uber saves him effort to find clients. But, also, Uber offers big bounties (like $600!) for drivers who exceed service levels (i.e., like, when 90% Uber clients submitted to him are served within 5 minutes, etc.) All in all, he is on the plus side even though he gets less per ride.
And not to mention Uber is extremely convenient for me. (I still remember when we had to stand in the cold for about an hour because no dispatch wanted to send a cab our way -- and that was within city limits, mind you!) Every single taxi ride I take, I book on Uber now.
I still have TV service by Comcast. You know why? Because they offered "TV + 6mbps" package for the price of 3 mbps internet (for a year). Sure I'll take that! But when the cable guy came, I told him, "get the data flowing and get outta here, I don't care about the video signal". So in [less than a year], Comcast is set to have another "cable cutter" on their stats, hehehehe.
I think it works well because those who donate satisfy the human's natural urge to "look better than the others". When you're *buying* something, it's nothing special, business as usual. When you're donating, you're, well, *doing something good*, that "any reasonable person" won't do! And, given that just about anyone wants to feel that he's better than others... more people end up donating than paying.