Short-name alias to "Program Files" already exists, and might be called PROGRA~1. That's where I installed. It sets entries to where its stuff is, using that string. But running something from the command line still sees the name "Program Files" unless you change the current working directory to the short alias explicitly first; programs that are smart and look up their actual location using the Win32 API get the real name, and perhaps other things.
Point is, it does not always work, and I've given up trying to put ActivePerl in a location other than directly under the root. Even then, it's a royal pain if a module is not already in their special repository, and if it's not pure Perl, you can forget it.
That's my experience from pre-release days when the company was called HIP, through around 5.6 when I stopped trying to install it other than where it likes to put it. In the early days I suggested that the installer simply use the short-name alias of the normal path or whatever path the user chose, and they told me directly that it's still not good enough which is why they still put it off the root.