When it comes down to it, the conveniences Linux gives me far overshadow the minor pains of having to Google hardware before I buy it to make sure there are drivers. Even on this front, I've almost completely stopped doing it...I've bought several pieces of hardware on a whim in the past few years without thinking, "Oh, wait, will this work?" then plugging it in and have it Just Work. No driver installation, no Googling for errors, just a working camera, sound card, MIDI controller, etc. The major hardware makers, like GPU and network vendors, are all on board. If you buy quality hardware, it is almost certainly gonna work with Linux (and all that old hardware that stopped working with Windows several years ago, due to no new drivers, is still working in modern Linux; this is true for me of two 24 bit audio interfaces, and a MIDI controller).
The command line experience of Linux is simply superior to the alternatives. Mac OS has bash, sure, but all the stuff is in the wrong place with crazy long paths, and all of the software is installed via ornery dysfunctional package bundles from Apple (or from an alternative source, like MacPorts or similar; I truly hate the package management situation on Mac OS X). The command line feels clumsy and bolted on, even though there's UNIX at the core of Mac OS X.
Actually, a huge part of it probably comes down to package management, for me. Package management is so bad on Windows and Mac OS X, and so good on Linux (yum and apt are just really excellent), that I feel a little dirty installing stuff on those platforms. Being able to choose from thousands of packages, especially developer packages, having all the Perl modules I use already packaged and easy to install, having all the Go and node stuff packaged up nicely and ready for tinkering, having a lot of the system built on Python and shell scripts with the source readily available, all of this stuff just adds up to a tinkerers dream.
I feel like I learn something new when I figure out problems on Linux; I feel like I'm being punished when I run into problems on Mac OS X or Windows, even if I get them solved. It's just such a different feeling. I'm sure for someone who isn't technically minded, the experience would be the same...an opaque system that isn't working right. But, for me, when I'm able to patch something and send it off to the maintainer, I feel happy and content. I feel frustration when I run into problems on Mac OS X or Windows. All systems of the size and complexity of a modern OS have problems, it's just a difference of how they get resolved that makes the difference.