This steak is nice, but it's not $17 nice. I think I'll just pay $14 for it.
These new tires for my car don't ride as well as the old ones. I think I'll only pay $50 for them, instead of the $75 asking price.
It was a nice concert, but I don't think it was really worth the $90 I paid. I'm going to pay $50.
There was a bit too much traffic on the bridge today. I'm going to only pay 75% of the usual toll.
If the contract has, "This is what I pay", I am willing to pay that. I agreed to it, it would be dishonest to do otherwise.
If there is no contract, I am free to choose whether or how much I pay. I err on the side of generosity. But if you spill my drink on my clothing, then fail to serve my child, then I see no reason why I should voluntarily reward your incompetence.
Incidentally even if there is a contract, you would be amazed at how much leeway there turns out to be if you have a problem.
For example if your restaurant gave me steak with Brussel sprouts served with it, I'll send it back because I'm allergic to cooked Brussel sprouts. I'm willing to pay for the meal even though I can't enjoy it, but you'd be amazed at how many restaurants will take it back, and offer me a different meal for free.
If the new tires that you just installed immediately spring a leak and I complain, you'd be amazed how many tire shops will replace them for free.
And so on. If you have a real problem with what you received, and you're polite about it, frequently establishments will try to make it right.
Unless you are an uncaring psychopath you should pay servers in the US for bad service as well - everyone should be paid for the labor they do. If they aren't doing an adequate job they should be reprimanded or fired. That's not your job though, that's their boss's job. You don't know if they are just having an off day or the problem you had was caused by someone else.
Furthermore, most places pool tips so you're probably docking the pay of a really good server.
But if I take my clothing to a drycleaner, and my clothing comes back torn due to their incompetence, I'm not expected to pay for the drycleaning. Ditto if the valet damages my car.
The fact that someone put time in does not entitle them to my money. If I receive something of value, I give something of value. If this makes me a person that you do not wish to know, then I'm happy that I don't know you because you sound like an unpleasant person for me to be around.
Compare it to the business world, where if you ship a pallet of widgets and a few of them get damaged, you can't just tell UPS "you broke my shit, I'm not paying you." No, they delivered your shit, however subpar, so they expect payment for the trouble. If you keep withholding based on principle you'll find yourself blacklisted and have your account sent to collections.
And to that: a server is very rarely personally responsible for a bad experience. Restaurant service is a team effort and the service you get merely reflects how well management functions.
Also while I can't speak to why other people don't tip, the reasons why I (very occasionally) don't are usually under the server's control. Even if the immediate cause of my unhappiness was not under their control, they had the option of acknowledging the problem and offering an apology. It takes a lot to lose my tip.
That said, if Trump's proposed revision of regulations around tipping go through, I'm going to probably greatly cut back on tipping. It is one thing to reward the waiter. It is quite another to believe that the money is going to the owner of the restaurant.