I personally care about only of those pure perl (call it "pp") modules which would continue to work with changing supporting software to a large extent, barring API changes. I am under no illusion that pp modules would not need to be ever updated to follow supporting software. If a otherwise pp module follows very closely changes in supporting modules, then it could go in the "perl-verison" directory along with rest of the lot.
Those concern are for later|never term, for me; I still do not know how to differentiate module type programmatically.
Putting the issue other way, would this be workable (to avoid manual work of module installation via any method among package manager, cpan, "perl Makefile.PL", etc.) ...
- programmatically generate list of modules in old version;
- install new perl;
- programmatically generate difference list from modules in new perl (in core, I suppose) & previous list;
- install modules from the difference list
... ?