The older system allowed for a high degree of flexibility by implementing an installer using a Perl script which allowed us to use almost any function available in Perl. The current system does not allow for that flexibility and that makes more advanced installers harder or impossible to make.
I think you're misunderstanding how it works, let me explain:
Instead of a script there are now functions. You can put any code you want in them.
The "flexibility" and "advanced" part comes from the fact that the logic that 99% of scripts need to get installed is already done and all you have to do is have a hash that describes the script...
For example, instead of copying files around you just have your tarball exist. No need to know where it will be installed or where you are at at the time or that the appropriate "no same owner flag" for the OS's tar is used.
You can of course implement the same logic in the install function yourself but it'd be counter productive to do so.
Now if the standard install does not fit the needs of a script you can have other code before or after it or not even call stdinstall() in the package's install function and implement all of the logic yourself.
Perhaps there are parts of the documentation that could be made clearer?