Yeah but if you are in America where higher minimum wages or public healthcare are not happening anytime soon, maybe you should tip the hourly workers if you can afford it?
I think people just don't want to be confronted with the idea that the people servicing them make a pittance. It brings up uncomfortable feelings to have to decide how much a service employee "ought" to be paid, each time you eat at a restaurant.
We've all been tricked into tipping in situations where, honestly, the management should be paying better. And yeah, I know that means that the cost of things will be higher on say the menu, but the real cost of a $20 dinner should be $24, why not just pay the $24 up front and raise the base wages to what they should be.
I'm pretty sure this is only an American lunacy too.