I keep talking to developers that code on OSX and I keep having the same question:
You're not going to be deploying any of that code on OSX, your target is almost always going to be Linux. So why not just develop on Linux?
It's a reasonable question.
For me it's really that I make money writing code; I haven't figured out how to get paid for configuring my laptop, so I'd prefer not to spend time on it. Also, work has no issues handing me an iMac but would get testy if I started running Linux on their network ... I realize that's silly but it's not a fight I'm interested in having. Once that stake is in the ground it makes sense to me to keep the environment homogeneous. Plus there's software I really do find useful: File Vault, Time Machine, iTunes, Omnigraffle, Skype, Live, Logic, iPhoto, and so on. I'm sure there are Linux alternatives but there's a cost associated with switching that I would find very expensive. So although the hardware might be more expensive than the alternatives (and again, even if it's $1k over the life of the machine is that a lot?), the operating costs are -- for me -- cheaper.
If I'd ever run into serious issues moving code between Linux and OS X I'd rethink it but I'm not sure I can remember a time when functional tests passed or failed in one environment but not the other. It all gets rerun in integration testing anyway, so even if something cropped up it'd be more of a curiosity than a production issue. I wouldn't run serious load, capacity, or performance testing on my desktop no matter what the OS, so that's a wash. I could imagine cases where this isn't so easy but apparently that's not the kind of development I do.
I'm not trying to sway anyone. It works well for me and has proven a profitable choice, that's all I really care.