You say "ironed out" but what I think you mean is "layered on top of each other and ironed together; impossibly thin."
I feel like developing on Windows is more difficult because of all it's abstraction layers. WMI, DCOM, the registry, overlapping snap-in functionality, ect.
To me programming on Windows feels like you've got to peel apart all these layers to understand what's between them. Linux is one layer and you can already see right through it.
> - and a ton of other minor little annoyances with hardware support that Mac/Windows ironed out years ago
Uhh, did you just say that Mac has ironed out harware support? For what? They only support their own hardware. The hackintosh community will be the first ones to tell you that Apple purposely doesn't iron out hardware... ANYTHING unless it already says "Apple" on it.