This may be a totally stupid idea but here it goes anyhow... What about creating a special nlet object that can dynamically change the number of nlets (in or out depending on a flag given) and issue command to gop object to redraw itself upon update? Doesn't seem to hard to implement but it does seem a bit unconventional, if you like...
hmm... you'd also want some convenient way to empower people to do something with audio and/or messages going in and out. A similar possibliity might be to make a voicebank object that allocates n copies of an abstraction
and
makes all their nlets appear on the containing patch somehow.
I was thinking something along the lines that receives are created for each nlet as those are created so that way you could route things within the patch without resorting to scripted patching. E.g. multioutlet is created with optional arguments blah 1 4. Blah is its context, 0/1 is whether it is inlets or outlets, and last is the number of nlets (4). Now this object is set up to receive blah_0, blah_1, etc. and they are being routed to respective outlets. There could be another signal based nlet or one that can do both (with more optional arguments or messages passed into it). At any rate, you get the idea--it's not that great the more I think about it but it does potentially solve a few issues...