The problem with the pit in the olive or the chicken in the vegetarian dish really don't have anything to do with the waiter. You should have tipped the waiter and simply have refused to pay for the meal. And tipping the waiter is not because the service was good but because without your tip they can't pay their rent. They're really at your mercy.
On the other hand I do think the whole tipping culture in the US is broken and something should be done about it.