I've been working remotely more often than not over the last four years (a brief 1-year interlude when I was back in an office full-time broke up the streak). I definitely prefer it.

The advantages are too awesome! I get to spend more time with my daughter (I'm a first-time father and she is just turning a year old today). There is hardly anything in this world that makes me happier than spending time with her. If I had to commute to work every day I'd basically see her on weekends and miss out on her every-day life. My parents did that. It sucked for them I'm sure and it would suck for me too.

I am a software developer and so my work is primarily categorized as, "knowledge work." This is a very post-industrial job. Working more hours does not directly produce more "product." Working remotely allows me to take a walk and do some groceries while I mull over the dilemma that has been bothering me. Often I will come back refreshed and with a clear solution. Or I can read a book to my daughter while I think about it. My job requires thinking and generating good ideas (which is a process that requires idleness and spontaneous connections through hunches). A 9-to-5 policy of being in a seat and typing away is not very conducive to developing software (unless you're applying the Shakespeare Monkey Method).

The OP mentioned the disadvantage of spontaneous social engagement. That is a problem I can attest to. However it is one I am willing to give up. I'm not as young as I used to be and it's not terribly important for me to play ping-pong with my co-workers and talk shop over beers. We make up for it by talking shop online during office hours and there are tools such as Sqwiggle which make those spontaneous chats possible.

At first this problem seemed big. I went out less and suffered a lapse in my social graces as a result. However I learned that I was just doing it wrong. Now I find I socialize more than I used to because I'm out in my community working out of coffee shops with other people in the same situation as I am. I meet see local people and we do local things and I've learned to develop a village mentality.

The real challenge for companies engaging remote workers is letting the reigns off. The fear of idleness is a rapacious concept amongst managers and entrepreneurs. You can hear it manifest in expressions such as, "always be hustling," "fail fast, iterate," and the like. However if history and open source have taught us nothing else it is that the condition of the human spirit is towards accomplishment. The goal in finding good people to work with is finding people whose sense of accomplishment shares the same spirit as yours. Even in idleness we unconsciously reach towards that which inspires us.

Remote work is great. Being around people in person is great. We live in a world where this is possible and easy to manage. There's no reason to force people to adopt your standards of living and geographic preferences to work with you.

(We just may be limited to certain national boundaries for the most part due to taxes and the inconvenience of international banking, but hey... walk before you run)

Update

The biggest challenge for remote workers is working with a centrally-located team. The styles of communication need to be more rigorously defined and a part of everyone's habits or else it tends to fall apart. The central team tends to isolate the remote worker because they're so used to just having a hallway chat and forget to share that with the rest of the team. To avoid this everyone needs to agree to share all information and to make it a habit to strike up email threads, create issues and log chats in IRC/Campfire/whatever. Important issues cannot be decided face-to-face over lunch and not documented somewhere. It just doesn't work that way when you have remote workers.

The tools to make communication between remote teams have been evolving at a rapid pace in the last few years. WebRTC, shared documents and better issue trackers... there's almost no excuse anymore not to adopt these habits even if you are a centrally-located team. And if you do adopt these habits there's nothing getting in your way from incorporating remote workers anyway.