The main reason it sticks around is because any business that tries to avoid it will be at a disadvantage, apart from the handful of adamant non-tippers. They'd have to charge more to make up for paying the waiters directly, and most of their patrons will perceive them as being more expensive, even if the total bill isn't. Same reason a hotel that charges $110 loses to a hotel that charges $100 + $20 "resort fee".
I agree that the tipping culture doesn't make sense, but stiffing the waiter isn't going to change it either.