I don't think that anyone is opposed to the notion of giving service industry staff their due. I think the problem is with the manner in which it is done... it occupies this sort of grey area where it is officially treated as nothing more than a courteous gratuity (in the true sense of the word) but in practice, anyone who does something for you feels entitled to receive 20% of the bill for even the most indifferent service, to the point where some people will give you the stink-eye (or worse) if you don't pay it.
Let's just cut the crap already, jack up the prices a bit, pay everyone a fair wage, and be done with this moronic "custom". The Japanese have figured it out (among others). Why is it so hard for us?