No one seems to have mentioned this again, but I think it's a good idea too. Maybe [inlet x] could be created only if creation argument $x exists? E.g.
[inlet 1] [inlet 2] [inlet 3] ...etc
creates an inlet per creation argument? Same thing for outlets?
it should be possible to do that with dynamic patching using messages to pd ...
cheers... tim