To be specific, suppose I symlink the/home/merlyn/private directory into my site_lib I can't just add MyModule.pm into that directory and call it with everyone's use MyModule. They'd have to say use private::MyModule. The path is affected. It's not recursive, it's a flat search based on the content of @INC followed by the filename derived from the module name.
Now, you could effectively copy every entry that you want directly into the site_lib dir (like putting MyModule.pm directly there). But that's not changing @INC, nor making it more flexible. The only way to do this is to recompile Perl, and we're back to the same old solution.
So, no, this is not "dirty", because it's not even a solution.