This sounds like the service was badly oversold and also they were having some trouble keeping track in a fast moving situation. For example if there were some staff standbys, jump seat permissions, or irrops that freed up random seats at the last moment. It gets more complex when they try to keep couples together, some people will simply not fly if separated off from their partner, quite understandably. Hence people may be taking the $800 at the last moment, or even they lost track of who had already accepted. BA also proactively telephones some people and invites them to be re-routed, but if this is done in the last 24 hours, the information feedback loop to the airport's DCS often goes wrong.
So when a seat becomes available at the last moment, it is not quite a random process as to who gets that seat - there is some consideration of fare paid, who you work for, and of course status / CIV. Plus perhaps a late equipment change - even if it's of the same type some seats may not be operational.
Still - I can understand the body of bemusement engendered by all of this. I'm a bit surprised they had this problem on this particular route, I though SAN was quite well scoped in terms of matching supply and demand.