I spent a good deal of time thinking how a gosub or goto might work with parameters. In essence, each time a goto or gosub is called, the parameter list would change. If you used %1-%9 here, you would have some difficulty reading what these mean.
You could also alias `return` to do the exit /b stuff.