When OS X came out, Steve Jobs promised an OS that would cater to pro users as well as amateurs. He literally said so in one of his keynotes. But around 2006, Apple started focusing on the upcoming iPhone and downprioritized OS X development. Nowadays it's all about making OS X more and more like iOS. They no longer care about pro users.
Case in point: If you're doing pentesting you need a machine that stays silent when connected to a network. With OS X you always have mDNSResponder blaring out. Prior to 10.6 you'd just solve this with a simple "launchctl unload" and be done with it. From 10.6 however, unicast DNS resolution was moved into mDNSResponder, so you need to keep it running or you lose the ability to resolve anything in the DNS. Of course it's possible to filter the multicast DNS announcements with pf, but it turns out that mDNSResponder will occasionally resolve various apple.com and Akamai addresses and that can't be disabled.
Same with IPv6 link-local addressing, it used to be possible to disable it completely, now that's no longer possible because they've dumbed down the UI. And when you use WiFi, OS X will regularly send 802.1X EAPOL messages out. That can't be disabled even with pf because pf doesn't filter on layer 2. Under these circumstances I find OS X to be unusable for pentesting.
And don't get me started on the laughable HFS filesystem and the non-existence of a package manager.