but neither was it the fault of the hapless passengers: somebody else may have been at fault or it could have "just been one of those things", today somebody always has to be blamed. Just seems to be a "jobsworth" attitude sticking to the letter of the law in such circumstances.
'Fault' is irrelevant - responsibility is the issue. Its is solely, exclusively the responsibility of the passenger to get to the flight and while factors beyond their control undoubtedly prevented this, it remains the responsibility of the passenger to turn up on time.
One can argue about whether BA did the right thing or not, but its their choice and the consequences to their business is theirs to determine.
I would suggest however that the majority of no-shows are unrelated to genuine sob stories, but are simple conscious changes of travel schedule. You cannot run a sensible business by having an army of agony aunts trying to determine the validity of every excuse, so one sets the rules and no exceptions.
One can also be pretty sure that if the majority of posters ran their own business where they had no-shows for their services, a refund of zero was most likely to be the outcome.