> should I add Some::Mod to prerequisites
Since you're using require, this would not effect any installation process. But it'll be a run time error. So if you wish to be "kind" to your users, then yes you should add it. If there is a core feature set you can provide and put any of the commands that will never be loaded into extension modules. And in those, make sure you have full coverage of the modules needed.
As for the first part of your question, if you got something work it, go for it. I will say, the whole time I was reading this I kept thinking App::Cmd. I cast no judgement personally regarding the various ways Perl allows for the dynamic creation of subs. I've used only a fraction in my day, but always enjoy seeing the options laid out. However, I will answer the question with a question: do you really need to allow users to define custom commands in that way? It seems like you're looking for a perl REPL/shell - and I think a few options exist. So your question may come down to - which one to use and how do I want to extend it to provide custom commands.