Always. If I have an issue with the service, I take it up with management.
I don't short change someone's wages because of a perceived or actual deficiency. What am I? Some sort of monster? Just because the rest of society is cheap and short changes service workers because they can get away with it (until labor law gets fixed), that does not make it right.
And if you say, "I can't afford to tip 20 percent all the time", well then my friend, you can't afford to be eating out. Why do you think its more costly to eat out in Europe than the US? Because staff are paid a living wage there.