Similarly, GNU Info pages when well-written man pages suffice. Split by topic - there's already a mechanism for this.
I don't want to compile a basic utility like `curl` or something and then discover that somebody decided it has hard dependencies on graphical libraries and applications (even if once- or twice-removed).
KDE is superb these days, after the slump that was KDE 4. However even KDE developers seem think that a tic-tac-toe game needs to have its board abstracted as libtiktaktoe in case anybody else ever needs to use it.
I had thought that Wayland might be an improvement. It seems to be a regression. I recently learned that the trade-off for avoiding tearing in Wayland is increased latency compared to X11/Xorg. I don't want to care about my graphical display manager. X is not perfect, but it is tried-and-true, and it does not leave me struggling to share my screen in Zoom, or have legible fonts in my creative applications.
Systemd: Binary log files. I should be able to configure my system with `sed` and `awk` scripts that easily modify text configuration files.
On this note, applications should use plain text files for their data more often. For example, web browsers could use a hierarchy of text files, each representing a web page in history, or a bookmarked site. Sqlite is good, but a database is simply unnecessary in many cases, because filesystems are very optimized and perfectly useable for many cases. This encourages hacking and interoperation. I could comfortably browse through my bookmarks in a mature native file system explorer of my preference, instead of struggling with a tricky scrolling menu within a browser. If I want to change browsers or computers, there is no more export/import of links and then they get messed up anyway.
DBus: I'm not sure why the same functions could not be implemented robustly as a standard structure of named pipes.
SELinux: A tremendous gift so often squandered by being disabled with the global flag.
Pulseaudio, Pipewire, Wireplumber.