While the customer may be financially powerful in the relationship, I feel that tipping culture gives power to the server to withhold good service as a punishment or as an optimization strategy at their own discretion. It causes a server to judge you as soon as you walk through the door... will this person give a good tip? Should I ignore them and focus on this other table?
The worst part is that the tip happens at the end of the meal after all of the 'costs' of providing good service are already done. If the patron stiffs the server, then the effort was 'wasted.' It's far better to make an educated guess based on… what? the way they dress? their grammar? the car they pulled in with?
It's a terrible system.