Not every desktop environment that runs on linux works well. Some (maybe even most) are buggy. They are not all buggy and you are not forced to use the buggy ones. I see more options (even if some are bad) as a good thing.
The less-buggy ones are also the ones with less features, the ones with less appeal and promise than the others. XFCE is, for example, a quite fine DE for a geek and it sure seems stable from what little I have used it, but it's not exactly appealing in looks, it feels dated, and there's a lot of rough corners here and there. Now, take KDE in comparison: it's chock-full of features, it doesn't feel nearly as dated and it can be really pretty on the eyes. On the other hand, it's buggy as shite, I can still get whole Plasma to crash just by adjusting the panel, it's extremely confusing, and even people who have used KDE for years still have trouble figuring out where things are or how to work them -- I popped in on #KDE a while ago and I couldn't find a single person there at the time who knew how to use activities, for example.
Sure, there's a lot of DEs to choose from, but they're cannibalizing each-others on the amount of available developers and the end result is seemingly that no project has enough skilled developers and designers.
Clunky package management system? The package management systems in linux are far superior to windows. In windows you just download your own executable and install it yourself.
Yes, clunky. For one, you can't install stuff to a location of your own choosing without dropping to console. No, they'll always be installed system-wide and in the default location. If you're using a years-old distro --for stability or whatnot-- for which there are only security-updates available any longer and you want e.g. a newer version of some web-browser what do you do? You can't just download the package from the Internet as it most likely depends on newer libraries, too, that just aren't available in your repos. Secondly, there's too many incompatible systems. If you want to install something that isn't available via repositories you'll have to know which system is in use on your installation and then download the corresponding package-type. It may still not work, though, if the package wasn't specifically for your distro. Thirdly, it doesn't allow you to install only parts of the package or versions with differing features. On Windows you can e.g. download LibreOffice and choose which parts to install and which ones to omit. On Linux, well, usually you install libreoffice and just end up with everything with no customizability. And what if you want e.g. an alternate version of a package, with this or that feature that is disabled by default? Under Windows you just download the executable and install it. Under Linux... well, even the easiest route generally involves having to enable some extra repository or two.
Yes, keeping the things that are already installed up-to-date is a whole buttload easier under Linux and I do really like that. Nevertheless, I still see these package-management systems as too rigid.
The point of linux is not mean to be "free as in beer".
Indeed, I know it isn't. But try selling the idea of "free as in libre" to any Average Joe and see how far you get. From a purely pragmatic point of view it just doesn't really matter for most. And atleast to me it still ain't worth the aggravation on the desktop.