I remember back in the day doing DirectDraw/Direct3D programming, I had to have lots of "if video card type == x, then ignore these capabilities and do this other thing instead" hacks. A much bigger issue back then when we had more than three video card manufacturers. (it's still a minor issue today ... nVidia cards tend to be way more permissive about OpenGL calls than AMD cards. But I can afford two discrete cards and one onboard chipset.)
It's so completely impractical for a hobbyist project to own every possible piece of hardware, or at least a huge majority of it. Yet it's nothing for a Fortune 500 company to do the same.
Really slants the playing field away from independent software developers.