Today I saved a lot of time by learning that scalable_allocator already pooled memory. It's nice to find that a library that should probably do something for you, really does already. I'm somewhat surprised that I missed that fact, however I've been saved a lot of time and effort in learning this now rather than later.
The next question, however, was whether or not the cache_aligned_allocator implements pooling. I examined the source code, and found that malloc() was called directly rather than scalable_malloc(). I would take this to imply that in fact the cache_aligned_allocator does not operate from a memory pool.
What is the reason for this? Would it make sense to create yet another allocator, which does pool memory as well as allocate memory on cache-line boundaries? Perhaps this is computationally too difficult to do... finding chunks of memory in the pool that are the right size might be too much computation to do in an allocation call?