It's fully moral to have a society where no one tips. Prices would be 15-20% higher, waiters would get a higher hourly wage, and it would be fully moral not to tip. That does not make it moral not to tip (when appropriate) in our society.
It would be fully moral to have a society in which mortgages are treated as call options on a house owned by the bank. Interest rates/prices would be higher, banks would fully expecting strategic default whenever it became reasonable to do so, and strategic default would be fully moral. That does not make it moral to treat mortgages as call options in our society.
Social norms matter, and it is indeed immoral to take advantage of people who reasonably assume you will behave according to established norms.