Reading through the documentation (which is good), there is one thing that seems pointless: --required-args and --required-values are actually the same thing, since it is said that default value of "yes" is assigned to all arguments that do not require an explicit argument.
Indeed. This will probably be removed. The argument against --required-args is actually much simpler: it only makes sense to have groups of required arguments - such as when we either want -a -b -c or '-x -y -z', but it's pointless to demand to include any single argument that doesn't require an explicit value.