The only way to avoid the communication overhead is to have one person working on each component. But since coordinating the components involves communication, you can only have one component. So sitting alone typing away is fine if you're working on a one person project, but if you want to do something bigger, it pays to have everyone sitting together with a few hours overlapping. (I'm not a big fan of being awake in the morning :)
Needless to say, I don't really agree with this. First, ‘half communication and half typing code’ leaves no time for individual creative problem solving, which, unless you're stuck writing the nth me-too implementation of the same CRUD form-filler, is essential. Yesterday's ‘open-plan’ discussion <https://news.ycombinator.com/item?id=5767414>; is apropos. Half communication? It wouldn't be half if everyone would just STFU long enough to get some work done for a change.
Second, I dispute the idea that relevant technical communication needs to be, or even can be, done primarily face-to-face or verbally. We have writing and mathematical notations for good reason. Feel free to pop over to a site like Vocaroo and comprehensibly present Tarjan's algorithm, say, or the stdio API, or the VPUNPCKHDQ instruction.
Plenty of them don't need to get to work every morning, and don't need to live within commuting distance of SV, to do their jobs. That's a company policy decision, not a law of nature.