Isn't BA's hand forced by the budget airlines? If they stopped serving free food, one of their main selling points disappears. BA seems to be experimenting with how little free food people will accept!
What is ironic is that the cost of the food is probably relatively immaterial in the whole cost of providing a meal service - ie adding in extra cabin crew, weight of trolley, non-variable food preparation / transport / packaging costs. It probably costs £2 to serve three squares of cake against, at a guess, £2.50 to serve a sarni, juice and dessert.
I'd like to see Easyjet or Ryanair try to ban BA's ads on the grounds that what they are providing cannot constitute a meal and should not be described as such in their advertising!