My suggestion:
Roy, be aware that your functions KGA_Conv_Pickset_To_EnameList & nestedEnmList are adding unnecessary loops to the processing and therefore introducing inefficiency.
Every block is analysed only once, so I don't think there are unnecessary loops. But the lists that are returned by these functions do entail some overhead. Maybe that is what you mean?
KGA_Conv_Pickset_To_EnameList iterates over the selection set only to construct a list which is then iterated using another loop; similarly,
nestedEnmList iterates over the block components only to construct a list which is then iterated to check for
INSERT entities - this check and any further processing could be performed whilst iterating over the block components to avoid the extra processing loop.