Why the help never changes the tool
The help reads and writes only. Reading only is what makes asking for help a run that changes nothing.
The one thing the help must print
The exit set. A set that is not printed is a set a script writer guesses.
The help is not written by hand. The help is read from the same lists the tool reads, and one source is why the help cannot be wrong about the tool.
About 1 min of reading
Prove the help is one source
Print the names
Before you run it, say out loud what it will print. Then open the answer.
Print the defaults
Before you run it, say out loud what it will print. Then open the answer.
Print the exit set
Before you run it, say out loud what it will print. Then open the answer.
The help reads and writes only. Reading only is what makes asking for help a run that changes nothing.
The exit set. A set that is not printed is a set a script writer guesses.
The names the tool takes. The same list is what makes the help and the tool agree.
The defaults from one file. One file is what makes the help print the truth rather than a copy.
A run that answers about itself. A run is what a test checks, and a checked help is a help that is not a document.
Each one is defined here on this site. Open the entry for the full definition and the other words it points at.