Yes, that is a perfectly normal use of the "Execute Another Command" action.
There is no artificial limit as to how many commands you can execute within the same chain, that I know of.
At some point you'll run out of memory (as each command in the chain would stay in memory until those executed by it return), but as commands are not intended to be executed recursively, that's unlikely to happen (as you'd have to create a unique command for each link of the chain).
Do note that executing another command like this is slightly slower than executing the actions directly within the same command, as the next command in the chain must be looked up, loaded into memory, and any command-specific options (E.G. the target) set up.