I agree with you - to a point.
I make decent money, and have empathy towards waiters and waitresses especially if they appear to be overowrked in a crowded place and are nice and professional and especially if we get into conversation and they are putting themselves though college or raising kids alone, etc...
And I tip BIG because I like to think they were happy when they found it, and it made their day nicer, especially if they made mine nicer.
But I NEVER tip bad service or rude behavior, and I write in a big fat ZERO and a note explaining why.
That is a real key for me -- people have to be putting effort into it and working hard. I have kids selling things door to door and if they appear ambitious and are putting some effort into it, I usually buy something from them even if I don't want it. However, if a parent comes to my house and asks me to buy something on behalf of their kid, I tell them to send the kid over. Same with waiters and waitresses. If they are working their way through school or trying hard, I generally tip well. Same in my business. I generally give people extra chances if they screw up as long as they are hard workers and don't loaf. People sometimes don't realize how critical it is that they appear to be good, hard workers, and how much good will they can get if they appear to be.
On the very rare occasions I have run into service that poor, I have tipped exactly $0.02.