I think it's a autonomy thing. People that care about their work will care about their work environment, and they're the best stewards for getting that kind of work environment in place. They've got the tightest feedback loops after all.
This seems to conflict with ease of management, which might be why this kind of autonomy is rarely granted. Cubicles are cheap and easy to manage, having 50 different environments in a 50 person office and resolving conflicts between them is not.
There's some approaches that partially address this problem, for example "Work from home", which whilst allowing some workplace customization has a number of drawbacks.
I guess the simplest way to go about it from a strictly physical (eg. excluding communication channels) work environment standpoint would be to give people a space and money budget, and treating them like responsible adults with it. "want to wall in and sound-proof your space? sure". "Need 2 different office chairs for your back problems? Put it on the list."
Set a suitable budget cap per person, divvy up available space, and optionally set up a position that handles ordering of things and tracking of funds spent.
Historically speaking, very senior employees get to do this with their own office to a degree. But the output and impact of good software engineers might warrant the same kind of autonomy.
It may be a considerable leap of faith from a management standpoint, but there's some absurdity in managers trusting engineers with business critical systems, but at the same time being concerned about their ability to pick a desk and chair to seat their butts upon.
Then there's the thing with open offices, but that's a cost of communication issue, signal-to-noise ratio kind of thing. Talking in an open office is broad-spectrum and cheap for some of the participants, but information conveyed is not necessarily valuable in the greater scheme of things, in addition to incurring attention costs for everyone else.
It's like radio without the FCC or everyone communicating over the broadcast address in a network.