How to alter command being run by drush_invoke?
Drush calls command hooks via the function _drush_invoke_hooks, which unfortunately does not provide any facility to alter the arguments list from a pre or validate hook.  We are looking to provide a more flexible mechanism that would allow this in Drush 9. Currently, only the command alter hook can change the parameters to a command. Ideally, Drush commands should invoke other Drush commands via drush_invoke_process; this will also go through the command alter hook.  If a command uses drush_invoke, though, you are stuck, as drush_invoke bypasses the alter hook.