I have had lots of experience with Google and Amazon recruiters where CA was the only viable option. Google also tended to have a bad habit of offering SRE positions for datacenters in the sticks, but that was not a development-flavored SRE thing in the least. They pretty much close the door on you if you don't want to move and are dropping the ball on some pretty awesome development centers IMHO.
Facebook is often avoided by some very sharp kernel (and other) folks, because they greatly insist on a boot camp and can't guarantee what department you are going to work for. They lost some brilliant folks as a result. I wouldn't work for them for that reason, as I think the team and the manager are the most important parts of the hiring decision.
Yes, Google has other offices, but they are not hiring people in some pretty darn major development regions. There is allegeldy an office in Chapel Hill for instance, but it seems to be on the edge of being decomissioned and no recruiter will tell you anything about it.
So, yeah, it's not quite like you can just work anywhere.
That sounds better than Google's "work on what we tell you to" approach.
I don't know how much preference you can have.
As such, I think it's possibly very similar, though I thought with Google you did get to apply for specific groups.
This is just untrue. I haven't looked closely at Facebook recently (beyond watching the [office in Seattle](http://www.geekwire.com/2015/sneak-peek-facebook-plans-epic-...) grow quickly) but traditionally Google has had ~50% eng in MTV and the rest spread out. NY is the second largest office but Seattle and Bangalore are pretty big. Seattle (and Kirkland) are now at ~2000 people (https://twitter.com/juberti/status/675022362438316032).