

You misunderstand me. It’s not about typing it. It’s not conforming to prevalent Linux paradigms which creates artificial confusion and learning difficulties. There’s a reason it’s git pull and not git -L, perf annotate and not perf -A . It’s a great semantic difference like <b> vs <h3>. I’m saying this as an Arch user.
The prevalent way (except for ancient tools like tar), and thus the norm, is that options are meant to be optional and subcommands are like old “do one thing” Unix commands (do completely different things, can have completely different set of arguments) but you prepend the name of the software in front of them. You can see the impact of this reflected in documentation for argument parsers: https://docs.python.org/3.14/library/argparse.html#%3A~%3Atext=Required+options+are+generally+considered+bad+form+because+users+expect+options+to+be+optional https://gobyexample.com/command-line-subcommands#%3A~%3Atext=Command-Line+Subcommands-%2CGo+by+Example%3A+Command-Line+Subcommands%2Cthat+have+their+own+flags.