As you rightly point out, food has become just another profit centre, with those purchasing food at inflated prices onboard effectively subsidising the tickets of those who do not.
With the greatest respect, this argument is, I would suggest, valid for all customers. What I mean is that those paying excess baggage charges, purchasing drinks or booking exec lounges, by way of immediate example, also subsidise their fellow passengers. In fact, given the extensive use of yield management software for manipulating fares, all passengers are subsidising each other to a greater or lesser degree. I don't feel bad about this, or about charging more for a hot meal than it is bought in for by the airline. Just like other businesses, airlines are entitled to make a profit from transactions with their customers. We offer customers the choice of eating with us or of choosing not to do so and making their own arrangements. Free choice. I must admit that I struggle to understand why this might be viewed as iniquitous?