I don't deny that there are certain usability problems with linux, and I don't deny that you have been frustrated at some point while using linux. But the problem with these types of discussions (this seems to be the third on /. in the last week) is characterized perfectly by your comment. Well, yours and the GP. One person claims that he/she is perfectly happy and nothing is wrong. The other says everything is broken and complete crap with no actual specific or constructive detail. Let's take a few examples from your post.
- In many cases it doesn't work out of the box.
What does this mean? What doesn't work out of the box? Is it a piece of hardware? Is it a piece of software? Is it a part of the UI? What are you talking about?
The reason this is important is because, depending on the specific problem, it may span from trivial to very difficult and likely requires different groups of people to be involved in the solution. A piece of hardware may not work out of the box. Well, there are a lot of approaches. Arguably the "best" solution would be to get that piece of hardware working, but for different reasons it may not be easy or possible (ex: hardware is complex to reverse-engineer and vendor refuses to support linux). So then what are alternate approaches. Well, picking your hardware more carefully is one. This can be done by the users, but is probably better done by the OEMs. Guess what? Almost every Windows or OS X workstation sold is put together by an OEM. They do the work to assemble the proper hardware and make sure it works with OS. If you try to install OS X on a random collection of hardware, or even if you just try to use a random piece of hardware with a mac (like a USB wifi adapter, say), there is a pretty good chance it won't work. Does that matter to most mac users? No, because they buy their mac from Apple, and all of the hardware they care about just works.
Summary: hardware support is a problem for every OS. The primary solution has been OEMs selling bundled systems. So with better OEM support, this wouldn't likely be a problem on linux either. Unfortunately, there is little the linux community can do to gain OEM support. The commercial distributions have had limited success in the past (ex: Ubuntu partnering with Dell), but it's still not great.
On the other hand, a different problem warrants a different analysis. Pulseaudio doesn't work? That is purely a distribution problem, and I couldn't agree more. Distributions should not ship broken software or software with broken configurations. I have been frustrated by this in the past, with many distributions, and have become much more conservative about my choice of distribution as a result.
- Their requests for help are met with instructions to apply themselves toward learning more about how the tool is/was made and toward improving the tool itself.
Who? Where? When? Why?
It's important to know where you are asking for help. Complaining about hardware support on the kernel mailing list will likely result in exactly the response you describe. Why? Because kernel developers are busy people often employed by companies like Red Hat to hack on specific problems. It is not that they don't want to help. It is just that they aren't there to solve your problems for you. They may not be able to duplicate the problem you are experiencing on their machine, or they may not have the hardware you are having trouble with. So they will ask you to help them diagnose the problem, by doing tests and sending them logs. They may send you a patch and tell you try it out. That is how the kernel list works. It is a list for the kernel developers to communicate with each other.
On the other hand, the Ubuntu forums are usually very friendly. You will find people there who will give you step-by-step instructions for a lot of things. I would find it hard to believe that someone on the Ubuntu forums would tell you to write some code and submit a patch upstream. Unlike the kernel developers, most of the people on the Ubuntu forums are there to help you solve your problems.
- The defaults are almost always wacky. No distro or desktop has really ever shipped with good (non-ideological/non-developer) defaults to this day.
Back to needing more specifics and more clarity. Which defaults are considered wacky or "developer-oriented". This is one where I just have to purely disagree, because I have been pretty happy with most defaults for a number of years (Ubuntu fixed most of these problems for me). The only thing that is somewhat lacking is multimedia, and that is really just due to licensing. In other words, there isn't much a distribution can do because it is illegal for them to distribute certain codecs or *ahem* dvd reading software in the US. So that stuff has to come from servers outside the US, and can't be on the distribution cd. Most distrubutions have made it fairly trivial to get the proper multimedia support after installation, but you are right in that it is not the default. Problem is, I don't think it can be, and I don't see how you can label it as "ideological-driven". There are ideological distributions, but they aren't all that way.
- Create a desktop kernel fork. Linus & co. are not in the business of writing/maintaining a desktop kernel. Their goals are larger (and smaller) than that. The desktop kernel can track the mainline kernel, but shouldn't adopt every latest ABI or other change—just do a major update every 3-5 years.
Not a good idea, in my opinion. First of all, there isn't much of a difference between a desktop kernel and a server kernel. There are certain problem with the kernel, in general, that disproportionately affect the desktop over the server. Believe it or not, but this has been debated and flamed quite a bit on the kernel dev list over the years. As of Linux 3.2, though, desktop performane (ie: responsiveness, latency) is pretty good, and I don't think there is much improvement to be gained by forking the kernel. Meanwhile, doing so would put you out of sync with kernel. Maintaining a kernel is a HUGE amount of work. There is a reason why most distributions prefer to, at a maximum, just apply custom patchsets to the mainline kernel. And you would be 3-5 yrs out of date with respect to hardware support and performance optimizations, which I don't think is good for the desktop. Part of the reason why desktop linux is getting better is because of changes made in the kernel in recent years (preemption, scheduling improvements, filesystem improvements, integration of things like KMS), so getting rid of all that just so you can have a stable ABI is worthless, in my opinion.