You aren’t dynamically changing configs, libraries and programs on a production server like you are on a user facing system. That the killer. Linux servers are only stable when you leave them alone.
Updates to servers are generally done by beta testing them on identical hardware in the lab and when you have a functioning image you send that to production. To expect that kind of treatment on a user facing system when you say update the web browser would be beyond unacceptable.
As long as GNU/Linux systems continue to have ABI compatibility issues and general buggy issues between updates, it will never be considered a decent user facing system.
Also the quality of code for CLI programs is far more roadtested than GUI related code since there are major corporate efforts to make Linux servers more stable. Since GUI systems aren’t needed for servers they don’t get the same level of attention. That attention comes from the KDE and gnome foundations which don’t have nearly the same kind of money.
There’s a reason people are celebrating Valve contributing to KDE and related GUI projects as there’s finally some real money being thrown at the problem with real results.