"Progressive enhancement" doesn't need to be borrowed back from web design. In user interface design, catering to multiple levels of user expertise is an ancient concept. This can be an actual mode variable in the UI. In expert mode, you see more options. In command lines, you don't see anything, so this doesn't seem to apply directly. The program being given command line inputs isn't even running until you hit Enter. An expertise variable could be used to adjust the language and level of detail in the help strings and man pages, and to influence what is available when you invoke Tab completion (i.e. don't complete on options or sub commands that the novice wouldn't know about).
Since man pages are driven by nroff macros, the man page aspect of this seems within reach. A macro could expand a section of text only if some user expert level is greater than 2, and that could come from an environment variable.
That's a great idea. Allowing for discovery at the command line is one of the biggest challenges I've faced. Your solution is definitely a good way to accomplish that and one I hadn't thought of. Do you think that the mode variable is a common enough pattern that advanced users would know to do that right off the bat?
Since man pages are driven by nroff macros, the man page aspect of this seems within reach. A macro could expand a section of text only if some user expert level is greater than 2, and that could come from an environment variable.