I worked in a similar environment once (Large government contractor on a NASA program). There was lots of cube-walking, and generally, it is a distraction. BUT- You know that when you walk into someone's cube to ask them a question, it will be a bit of a distraction and it takes a little effort, so you make sure you need to before you do. Similarly, when someone walks into your cube, you know they think it is more important than something that would have been sent via email.
Not that it works perfectly, but the default of dumping everything into email is a problem. There are several other, possibly more appropriate methods of communication (phone, in person, waiting until the status meeting, break room chat, lunchtime chat, etc). Email is just the easiest and therefore most likely to be abused.
I think that works with other developers who understands how interrupting someone in the middle of coding is a big deal, but I've worked with PMs and QA people who didn't get the message that asking 4 or 5 questions a day is not cool.
Personally I prefer email for this reason. Too often I've seen coworkers who become "the guy who helps". The guy doesn't say no, who answers questions that have nothing to do with their job. I like to be helpful but I don't want to be the one who fixes everyone else's problems to the detriment of getting my own work done. It's easier to say "you should ask Joe, he's in charge of that process" in an email, for me anyways.