"This could be either a no-true-Scotsman, or a tautology."
It's even worse!
I am saying that working in terminals, with strings of text and non-binary-format config files ... and all of the tools built around that ... is an end in itself.
Every single "broken" example in the OP is something that I find non-remarkable and, in fact, makes perfect sense to me.
To argue for the OP, consider the case of passwd being parsed on every system call. That is simply sub-optimal. (It also seems exaggerated to me, and feels like a prime candidate for caching).
Further, there is an immense value in GUI based systems: discoverability. On a GUI, you can learn how to use a program without ever consulting a manual just by inspecting your screen. This addition is what brought the computer to the masses.
Finally, the terminal model of UNIX is just horrible. The hacks-on-top-of-hacks that are needed to turn the equivalent of a line-printer into something like nCurses or tMux are horrible. The current terminal is like this purely because of legacy. If you'd design a system for
"working in terminals, with strings of text and non-binary-format config files" from the bottom up, it would look totally different. Sadly, getting it to work with existing software would be a total nightmare.
All that being said, UNIX still has the better terminal (though I hear good things about powershell). Certainly, it is the best system for "working in terminals, with strings of text and non-binary-format config files". Though competition is sparse (windows, and maybe mac, depending on whether you consider it to still be unix or not).
Discoverability is definitely a feature of any decent post-2000 *nix terminal environment.
Man and apropos get you a long way.
The near ubiquity of --help as a flag helps too.
Well managed program distributions will even tell your shell how to tab-complete what it wants.
MOST CRUCIALLY, though, the text of a command line or config snippet can be pasted, emailed, im'ed, blogged, and found with a search engine! Try describing how to navigate through a moderately complex gui in text or by phone... it's a disaster.
In any case I haven't heard of performance problems. I think these files are needed basically for logging in and when tools like "ls" convert UIDs to names.
If there were performance problems, something would be done. And you can easily switch to LDAP or your backend of preference.
It's even worse!
I am saying that working in terminals, with strings of text and non-binary-format config files ... and all of the tools built around that ... is an end in itself.
Every single "broken" example in the OP is something that I find non-remarkable and, in fact, makes perfect sense to me.