It's to avoid close-in booking, higher revenue customers and loyal customers having a poor choice of seats compared to early, cheap tickets and customers with no loyalty.
It doesn't suit you, but it suits BA, their loyal customers, and those paying a lot for a ticket near the travel date.
Think of it as levelling the playing field a little.