Craigwatson has really nailed the problem down correctly and concisely. In my past, I’ve worked at airport ticket counters, check-in, and in revenue managment. I’ve heard all the arguments both from the company’s side and from the passengers’ side. There is always a conflict of interests and therefore no ‘right’ answer for all parties.
I used my discretion and most of the time I would give away a seat when I saw little prospect of it being sold, specially if later flights were heavily booked, which typically would be the case as the business passenger arriving at say, 1600, would often release a seat on a later and busier flight.
It is of course open to abuse, it sets a precedent, and there are many reasons why rules should not be broken. There are just as many why they should be broken!