Right, if you can execute arbitrary commands, providing a CMD option is just a way to bypass targets and payloads, which easily results on a lack of analysis of the vulnerability, badchars and/or payload length available. That makes CMD option easily unreliable. 

If there is an interest to provide arbitrary command execution, in addition to the native payloads (via cmd stager), an ARCH_CMD target should be added. By adding an ARCH_CMD target the cmd/windows/generic payload becomes available, which allows execution of arbitrary commands.