After reading / skimming most of the posts, I blame the Heathrow / UK practice of not displaying the gate until ~45 minutes before takeoff, even though 95%(?) of the time the gate is already known by 2-3 hours before and doesn't change. Plenty of airports are able to assign gates 24 hours in advance or more, I know LHR doesn't want to work like that, but if the OP had been given a gate on their BP at check-in (I see no indication they arrived at the airport ridiculously early), they would likely have headed to that gate at the appropriate time, so even the gate changed at the last minute, there would have been sufficient time to reach the new gate.
For longhaul, you are probably right for about 50% of times, I do see quite a lot of gate changes in the 2 to 3 hour area, and it depends a lot whether the aircraft is coming off a previous flight, or being towed from Hatton Cross or not. So if BOS-LHR turns into LHR-JFK, then the chances are BOS will arrive on time, or even early, then yes 3 hours before LHR-JFK that's just not going to change. Or will it? Technical check, oh dear, OK, we need a new aircraft, let's use SEA-LHR, but it's still in the air, which gate will it get? Who knows.
For shorthaul, it's notthing like 50% accuracy, it really is luck of the draw. Overall I think I'd kick your 95% down to below 30%. Having seen more than once the difficulties in switch an aircraft from C to B, I can see the logic in only declaring the gate when you have an aircraft ready for the flight. Unlike many USA airports, LHR simply doesn't have the ability to say BA175, always B42 or whatever. In this case I understand the OP's flight was shorthaul.
Now the above actually means it's all the more reason for ensuring that the FIM systems, whether in lounges or in the terminal, are as accurate and clear as possible. For 99% of passengers (made up statistic alert) the current process must work since missed departures are T5 are actually very low by the standards of international airports.