I can't say if it's unfair or not. I would prefer every worker to get a decent salary, but no idea how they feel in countries where tipping is widespread like the US. But, if I go to a restaurant in the US, or, Argentina (where tipping is also a thing), then I'll tip, and consider the price of the food to be 10, 15 or 20% more expensive. Otherwise, I won't go, because then I am complicit with the exploitation of the workers.

The only reason they don't get a full salary is because people keep paying the difference with tips.

Incorrect, the reason they don't get a full salary is because tipping is allowed.

If you don't tip, the worker does not magically get a salary. How would they? No, they actually make less money.

This whole "well if you think about not tipping is actually giving them more money" thing is the purest and most refined form of cope I've ever seen. It obviously doesn't work like that. Maybe if everyone did it. But you just doing it does nothing.

You're 100% allowed to not tip. What you're NOT allowed to do is not tip and then somehow try to claim you're helping the worker. You're not. Like, objectively, you're not. That's just literally not true.

No, it's because of crappy labor laws

Those laws are downstream from tipping culture.

Could be, but the way to fix it is with labor laws.