“...buy their own food will probably not make the best choices.”
Then maybe they should grow up. It isn’t any company’s responsibility to provide school breakfast and lunches to its employees.
Companies like Facebook and Twitter and LinkedIn and Google do not provide their employees with free food for altruistic reasons. Facebook told me the practice saves them money because every employee stays in the office and works through lunch and talks to other employees during the time when they would otherwise leave the office for over an hour and lose all that productivity.
I believe that if more companies did a cost-benefit analysis on how much work they lose by making employees go out to lunch they would see the genius in Facebook's model.