Well, BBB says that if you don't like the policy, go somewhere else.
Well, if it were me, I would stay. If a waiter/ress' service is unacceptable, I would get up and yell it out which would get a manager's attention. Why do I have to pay 17% when I get a bad service? Know what? The manager will definitely give me a free meal for next time. LOL If the manager will not give me a free meal for next time, simply report your bad experience in yelp.com which BBB/restaurant managers can't do anything to stop.
As you may be aware, more people go to yelp for helpful info. I am telling you that yelp is a champ because that's where the customers tell the truth about those places.