...but that doesn't mean it should be compulsory.
The other night I was in a restaurant where the food was good but the service less than spectacular. In particular the waitress was invisible at some key moments such as when my friend wanted an additional item which took forever to ask for and then to come, and then when we needed to settle the bill in a hurry, due to one of us having a train to catch. (Given the restaurant's location, that can hardly be a novel situation.)
So I was not exactly amused that when the waitress came back to collect payment she paused to circle wording on the bill stating "Service not included" and asked one of us to write in a final total on the paper bill, in spite of the card reader including a stage to add such a tip discretely. She then proceeded to compound her errors by handing first the reader and then the card to the wrong person even after we'd manually corrected this.
Because of this poor service and upfront pushiness we opted to add nothing to the card payment and left no cash tip. In this decision we were unanimous.
Service should always be included in the upfront price - that's basic consumer transparency and employee protection. Staff wages should never be random amounts at the whim of how customers feel at the end and tips should be a bonus reward for good service, not an automatic hidden fee. And substandard staff who push their luck deserve what they get (or rather don't).
In fact making staff rely on tips is illegal in this country. "Service not included" is a very misleading form of wording that takes advantage of the unsure and encourages presumptions on both sides that tips are automatic. It is perfectly legitimate to refuse to give a tip, especially when the service is not up to scratch. And if the serving staff decide to drop utterly unsubtle hints then they deserve it to backfire.