True. If, in my case, performance was relevant (i.e., it was an argument for a small method of an API that is often called inside loops), this would be the best course of action. But, in this case, I literally call the script to execute 1~2 to 20~100 times the same method, and each time has a time limit of one hour (I let the run in a remote server and forget them for some time). Having an easy to write/extend and safe code is much more relevant than a performance-oriented or idiomatic code here.
Hmmm, it is not my intent (for now) to be contrarian, but I have to point that: (1) considering both files, the total number of lines/words increased (if this is your criteria) and the complexity (in terms of more advanced concepts used) also increased; (2) the parsing library you are using is interesting, but for my case I prefer ArgParse.jl; DocOpt seems to be impracticable in my case (I have 3+ positional arguments and 20+ options, some that take extra arguments if they are present, and other that just set booleans if they are present). It, however, seems like a good choice for you.
I already have the arguments information stored in the ArgParse structure that I will use anyway because of the sheer complexity of trying to parse this by hand. So instead of replicating it in a type hierarchy I prefer to keep a single source of truth using the ArgParse.
Finally, I need to point that you have many distinct methods that you call depending on which exact combination of the same parameters was passed. In such case, the “pattern matching” made by the multiple dispatch is an elegant replacement of a switch case (or a chain of if-elses), you basically outsourced this structure to the generic code of the dispatcher. In my case I have one single required parameter that receive the name of the method called (selected inside the code by reflexivity, to keep the SSoT) and many different parameters for each method (as well other that are generic for all methods) and I need to be ready to parse all of them, and then after check if parameters of an non-selected method were passed.