While I sort of see your point, the problem is no different from any other argument. Throughout the macro reference there are many arguments for many different commands, and they all work the same: you can specify them as explained in the Literals section, or you can pass them as variables.