Well, as it goes, as often as I'm able to (sometimes it takes a while to change the culture/gain enough trust to be left alone) I don't put
any requirements at all on attendance/appearence/sanity/whatever as long as everything is being done and the team is performing. Nailed all the work for the day before 12:00 and want to hit up the pub -- how could any sane person stop you? Working remote makes you more productive and no one else on the team feels you're just slacking, then go for it.
It's not some intentional psychological ploy or anything, but I've found that people generally don't take the absolute piss if you let them manage themselves totally (we are all adults, after all, and who the hell am I to tell anyone how to handle themselves professionally as long as our obligations are being met)
Sure, everyone has to get together sometimes, but being onsite and having a normal lifestyle doesn't work for everyone, especially some of the 'top tier' engineers I've had who tend to be a bit wild.. Pushing 'school rules' on people just leads to them exiting, and it's no use kidding yourself that they need you more than you need them.
One of the best engineers I ever had had some sort of really insane drink/drugs lifestyle, he would drop commits in between 2-7am and they'd be brilliant, then he'd vanish for a few days, and repeat. Did I depend on this person completely for the whole project? No. But why should I care as long as no one else is annoyed by this behaviour on the team, and the work was solid?
I've never had someone actually emigrate during a role, but often people would go away for a few weeks and it wasn't a problem, again, as long as work is being done.
I'm not really sure why this isn't the case everywhere, but as long as my staff act like adults then they'll be treated as such. Onsite requirements are usually a symptom of a lack of trust or an insecure lead.