The thread local pool is designed to be used by a pool of threads. Because the pool of threads already limits the amount of instances that can be created the thread local pool doesn't need any multi-threading synchronizations. So the effective throughput is the highest possible.
The strict max pool will make certain only a limited set of instances are created.
Most call originate from a pool of threads (remoting pool, servlet thread pool), so using the thread local pool is best.
However for example the old EJB timer service creates a new thread per callback, so then you would need to use the strict max pool.
In this case the thread local pool should suffice.