There's a point at which can safely say that this kind of studiously groomed, exclusionary "cohesion" is doing more harm than good. I mean, there's obviously that point: if you refused to hire someone because they were a woman, you'd get sued; if you refused to hire someone because they didn't drink, you'd (rightfully) be ostracized in the community.
You might argue that workplaces shouldn't endorse one particular subculture over another: that's fine. But unless you take stern measures to ban fraternization, you're going to get coworkers forming friendships based on shared interests, and we're lying to ourselves if we think that interests of software people tend not to cluster around what we think of as "geek" culture.
Let me put it another way: do you want to spend all day hearing about my toddler? If not--well that's how I feel about everything you're interested in. So let's just all do our work and leave our personal lives at home.
Because that's not how human beings bond. We don't bond over a single facet of our lives; we bond as a community. The modern world, in which we live different places, believe different things and pursue different jobs, is poison for any sense of community.
So where do you draw the line? It's clearly not OK, even in the name of "cohesion", to encourage a culture that excludes people of different income levels or ethnicities.