I wish I could take back all my prior invocations of the complaint that someone interrupting me for 15 seconds eats 15 minutes of my productivity. Not only have I come to recognize just how transparently self-centered that meme is (and I'm embarrassed that I couldn't see it before, but given all the other great things about working from home I suppose a little confirmation bias is understandable), I've also realized that there are really quite a few domains where premature optimization is the root of all evil.
I think that the interruptions thing is definitely true, but the things that interrupt us are our devices, not our people. You can tell a colleague that you've got to get more uninterrupted time, but your device continually beckons.
Another thing that interrupts me is slow system access. I'm trying to develop on a test database that's abhorrently slow. Each time I'm forced to wait, I quickly pick up my phone, or load up a Hacker News tab.
Or say some error or urgent request comes up, it's been my experience at our office that the point person can look around, grab people into a quick meeting and resolve something in 10 minutes that would otherwise kick around in email for days.
It also helps on the social side to be "plugged into" the company. When you run across some weird error or feature request it's really valuable to know who you can even ask about a related part of the codebase or functionality. And you build that mental database by socializing.
Just a few of points the other way :-) I've done both remote and office work and just happen to prefer the higher bandwidth/iteration speed of in-person work.