That's exactly the case. Different people have different preferences. And if you have an inflexible work environment of a particular type, your company is losing access to all the talented people who hate that particular environment -- you're, in effect, making something like the ability to work in a noisy space a more important hiring criterion than the ability to write good code. (Maybe this is one of the reasons that companies feel there's a shortage of developers?)
The best approach might be to offer a choice to employees rather than having rigid policies like "everybody has to collaborate on a minute-by-minute basis in an open space", or "managers get offices and everyone else gets cubicles". Giving employees control over their individual working environments would go a long way toward making them feel valued by the company, even more than giving them free food.
Maybe it depends on the team and the personality types in it?