BA doesn't get to decide stuff like this. The central reason why EC261 exists at all is because before it came into force, all airline passengers were not treated fairly. Now fair treatment of ALL passengers according to the EC261 rules is mandatory.
The fact that this situation was able to escalate this far tells me that in fact EC261 is still not robust enough, and passengers still need further protection enshrined in legislation in addition to what is already provided. The airlines can bleat about it all they want, but ultimately they can prevent it from being necessary by not treating their customers so poorly in the first place.