It unfortunately seems the environment is some legacy part of their code that hasn't really been maintained for far more than a decade and that they just carry around. Yet, every once in a while they break parts of it when they port it to a new framework, since no-one really understands anymore how the code works in detail.
That has been my observation also. The original founders/coders of Emagic still work for apple, but it is unlikely at this point they personally do much coding anymore... and like you said..the Environment code is really old. Actually I suspect it was done in assembly language or something of this nature. I also suspect there is a lot of 8bit integer stuff coded into the environment that would be very time consuming and/or difficult to go back and update to modern capabilities. In my mind it's a miracle that the environment even still works at all.
My experience with AU3 in LogicPro up until 10.6, has been that you can't have more than 127 instrument strip objects referring to one actual instrument object in the environment. This is how multi-timbral scenarios are handled in LogicPro...each channel (or port/channel in the case of AU3) creates an additional instrument strip object. For example if the instrument holding VePro.AU3 is "Inst1", then each time you add a new track with new channel, an additional channel strip is created in the environment, referring to that Inst1 object.
However, you can only create 127 of them. If you create more then 127 of them, then literally the entire LogicPro GUI will blow up, the GUI will have blank spaces...the channel strips in the environment will all go blank, Not only is 128+ channels not supported, but merely trying to add that 128th channel will cause the environment to go wonky. This is true in older versions of LogicPro and perhaps latest version too.
I believe that is some kind of 8bit integer limitation somewhere in the environment code.
Lots of things in LogicPro are limited to values 0-127 even though they should not be. For example, in the articulation set editor, if you try to use PitchBend as an output switch..you're limited to values 0-127.
The AU2 environment macro approach for using VSL with multi-ports has always been running into bugs in LogicPro's environment and did not work properly ever in the templates that were provided by VSL...due to bugs in the Transformer object of the environment. Specifically this is related to NoteOn/NoteOff confusion in the way transformer handles notes coming from a region vs coming from live input. There are work arounds, but the VSL templates did not have those work arounds and never worked right.