The voice that says “Putting several programmers in an open room where they can interrupt each other doesn’t work, we tried that at Bell Labs in 1973” is the voice of someone who cannot appreciate that circumstances have changed, and that if you change a bunch of other things at the same time, putting an entire team in a single room can be more productive than putting them in offices with doors that close.
What would make this work now if it wouldn't work then?
Good question. I have met some teams that insist on private offices, and some that get very good results with "project rooms," where everyone in the same room is working on the exact same project.
A lot of things have changed since 1973, but also don't forget that this straw-man argument is being made by someone with a sample size of one. Sometimes when people say "We tried such-and-such and it failed," they are not describing something that always or even usually failed, just that they failed when they tried it once.
Somebody else may have tried it in 1973 and gotten wonderful results. Who knows?
My sample size is also one. This isn't arguing against your main point, I just had to chime in, as it's one thing I've disliked about my company moving to an Agile methodology. I personally find it very distracting, but that may just be because we're doing "team rooms" wrong.
I think this is the key. Are interrupts to one person also usually of relevance to another? Does the early knowledge of others' ideas, completions, and course corrections make up for the distractions? If so, a 'war room' arrangement may work.
On the other hand, mixing people on uncoupled projects, with different deliverables, whose interrupts are irrelevant to each other: distraction disaster.
If they took programmers from offices, and made them sit together in a room together all of a sudden, then you might just be measuring how upset programmers get when you make them move desks! You could probably get the same result in reverse and conclude that less communication hurt productivity.
You're changing more than one thing at once, so you can't guarantee a causal relationship between the result and the thing you intended to change.
What would make this work now if it wouldn't work then?