Its been proposed a number of times to instead generate just a single
loader for loading that number of items. This would mean generating a
single SQL statement that has parameter holders for the full batch size
and then somehow "filling out" the empty slots when the number of things
to load is less that 16. If this could be made workable across all
dialects, I personally think it would be the best approach as it
probably gets close to the start up sizings you claimed but would never
grow beyond that.
+1 if it is possible it sounds like the best way of doing it
--hardy