the idea behind pool is that it holds all bits relevant to a module (there's a different pool for each module)
if the allocation for a pool fails, we're in deep trouble anyway (and actually keeping a partially loaded module can generate many other failures)
so I don't feel like a good idea to introduce pool_free; if something has to be done, better ensure that the whole module loading fails in OOM conditions