> Nearly all existing CLIs are much harder to use than GUIs.
Software would tend to be easier to understand if it is better documented; GUIs aren't inherently easier. If the computer display specifies what is expected then a CLI might be easier to understand, and documentation also makes it easier.
However, what is easier for one user might also depend on what they are familiar with. Someone familiar with a specific kind of CLI or GUI might be able to more easily understand that. I will find it easier to use an unfamiliar computer if it has a command-line interface that I can understand, rather than the GUI.
> They will delete your stuff instead of trash it.
Yes, although it is not really an inherent issue of CLI vs GUI, but of specific implementations.
> You can run commands on the wrong folder or even the wrong machine easily, since you're not directly clicking on objects.
I think this is not legitimate. A CLI and GUI will both have to display such things in order to know which folder/machine/objects/etc you want, and at least bash already does display these things (and I would expect that a good quality GUI should also do), so it does not have to be "all in your head".
> Even with autocomplete there's a lot of typing involved. If you're not a touch typist, it's a real slog to type that much literally all day, and can even make your eyes and neck tired from glancing back and forth to the keyboard so many times.
This is legitimate. However, people who intend to operate a computer a lot, should learn typing if they can.
> If you customize any of this behavior, it doesn't look any different, you can't tell at a glance what's in bashrc.
It depends on the specific customization. If you modify the prompt then it will look like differently. Customizations are still useful whether it looks different or not. (You can also make other changes to the looks, e.g. changing the font size, which are not a part of bash and are a part of the terminal emulator (or display settings, if the operating system you use handles them like that instead) so would be configured separately.)
> GUIs also could be perfectly well scriptable, we could have some futuristic UI where everything was an auto generated UI around drag and drop script blocks or something.
I have another idea, which is similar in some ways but is different. You could copy objects between the command-line and GUI in either direction, and program stuff in the command-line to trigger things in the GUI as well.