I think co-location rocks for teams. The first time I had the pleasure of trying Scrum proper-like I stuck three devs in a broom cupboard to work together, one of them still talks to me (he even uses nice words). Is co-location really important? Software development is a social process so people will communicate anyway even if they are close but not co-located, won't they?
In Managing the Design Factory Donald G. Reinertsen has a graph very much like this one. It shows the probability of technical people communicating weekly by distance. The original data is from a 1977 publication, so pre-email/SMS/IM/Twitter.
Warning - graph is an approximation of the data. As I don't have the actual data I have reproduced this as best I can.
At a distance of 10 metres the probability of technical people communicating to each other everyday is pretty low.
If you're working in a serialised process you probably don't care - they don't need to communicate, it's in the spec.
If you're working with a concurrent or collaborative process then you need the people side by side.
"But we have a stand up/daily scrum, so everyone communicates once a day. We can skip this co-location bollicks and leave people at their desk." OK, but are you more more open with someone you know well or someone you don't know well? Co-location allows people to have the general getting know each other conversations that break down barriers and build relationships allowing for richer communication so they can tackle more important issues (eg What's blocking me). So nerr.