Part of the problem people get frustrated when walked by a plane or airline (or treated badly in another way) is that it is so easy to offer generous compensation to the client at marginal cost to the company. It costs an airline nothing (assuming there are empty seats) to upgrade you on the next available flight, and it costs a hotel nothing to give you a voucher for a free night or an upgrade next time you stay. Even giving you a huge pile of loyalty points / miles costs nothing if they are redeemed within that business for a marginal cost item such as a flight or room.
Despite this, we are often faced with customer service staff who appear to be incentivised to offer as little compensation as possible. If I ran a hotel I would be perfectly happy for my staff to give unhappy customers as many upgrades or future free nights (subject to availability etc) as was necessary to keep them happy.