It's a bit idealistic, but I'm certainly not telling you what you can or can't do. I can only speak to the effects I've observed from working in similar environments (most of this is anecdotal so take it as you will):
-People will get burned out. But instead of having a place to seek refuge (friends outside of work) the only place they have to go is the very place that is causing it, creating a negative feedback loop. Don't get me wrong, having co-workers who are friends are great, but it shouldn't be a requirement of the job. If work crew is small enough it may work for some length of time, but your theory on everyone being friends breaks down, somewhere I'd wager above 5 people.
-I've met extremely smart people who are great to work with in the sense they can get stuff done in a timely manner, but who prefer to stay in with their family or be home for dinner, you are missing out on great candidates like that.
-The biggest thing for me however, is the importance of giving programmers free time. We're in a fast moving world, and to only be able to focus on one subset is damaging to a persons professional growth. People should have the spare time to pursue things on their own, 40 hours is barely enough, 60 you can forget it.