story
But having 10 good choices is clearly better than having 1 good choice, and that's closer to what my experience with FOSS has been.
Not exactly.
tl;dr: Even if separate Lego pieces are really good by themselves, it's no good if you can't stack them together effortlessly.
------
The problem I see with GNU/Linux ecosystem is incompatibility issues. There are many ways to do one thing, but all of them are incompatible (completely or to a significant extent) with each other.
This is how modern GNU/Linux desktop is a Frankensten's monster made from ton of software pieces somehow glued together with duct tape and compatibility adapters. No consistency, every app works differently etc etc. There are higher-tier projects that try to unify different lower-level modules (e.g. NetworkManager or PulseAudio), but then something still relies on something else, like distro-specific stuff like ifup or netctl or wants raw ALSA, etc etc. Really, it's a mess, and even though I like GNU/Linux as my desktop it's sometimes quite painful to make it "just work", hoping for some sane levels of consistency.
I know, this is not about desktops but it's just most visible there. The actual point is, too many different incompatible implementations lead to integration fatigue. Or frustration because you have to make sacrifices (get either this or that but not both).
This problem is by no means unique or specific to GNU/Linux or FOSS, but it's most visible there.
I think that's unnecessarily splitting hairs. Compatibility factors into being a good choice. You can cherry-pick counter-examples, and no one's denying that those exist. My experience (almost 20 years) with FOSS has been overwhelmingly positive.
Case in point - every company that's tried seriously to build consumer-friendly linux products has basically had to re-build the interface themselves (Nokia/Jolla, Samsing Tizen, PalmOS, Google).
Yes. That's very different than saying there's 10 bad choices, though. IMO, the good outweighs the bad, but you won't get an argument from me about there being examples of bad FOSS.
> if you spread what people you have between different projects you're not going to get the resources you need
Personally, I'm very happy that I have the option to run XMonad. What @detaro wrote is spot on here: "You can not assume that all the people working on 10 alternatives otherwise would work on one project together. That might work with your employees and work projects, but not with volunteers" (https://news.ycombinator.com/item?id=16177915). I highly doubt the XMonad developers would even be interested in working on the WM that you're envisioning, so there's no loss in having them spend their efforts on a WM that does interest them. It's definitely made my life richer.
> Case in point - every company that's tried seriously to build consumer-friendly linux products has basically had to re-build the interface themselves (Nokia/Jolla, Samsing Tizen, PalmOS, Google).
That seems like an odd example to me, since you're arguing desktop interfaces but those are all examples of mobile interfaces. Are you sure there was even a FOSS mobile interface available for those companies to use if they wanted? I think that also overlooks that companies may choose to make a new interface to differentiate their product.