yeah, unfortunately I think there only a couple of alternatives, to basically 'skip' the internal voice allocation of the subpatch poly mode.
your approach is cool, and will work fine - but can be a lot of cables quite quickly, once the voice count increases, or you want more midi (e.g. velocity, poly pressure)
off-hand, I can think of two alternatives...
- use 'expressive poly' mode with a subpatch filter on internal midi bus, then in main patch send midi via the internal midi bus to multiple channels. will add (a max) of 1 cycle latency
- store data in a table in the main patch, then get the voices to read the table, using polyindex as a index - Ive used this approach for sequencing multiple voices, you can store lots of data per voice.
with these approaches, you can minimise the changes required to the voice patch, which is something I like to do....
but your approach is probably easier to see whats going on .