Why does the number of instances of a pooled service drop below the initial pool size

I am creating a pooled service with an initial pool size of 10 and an infite timeout.

I also preinitialize the pool.

I see that the 10 instances are created upon startup but when the service is used the instances get destroyed.

Shouldn’t it keep the 10 instances at all times?

… and after a while, we have 0 left

FYI: I allow additional services to be created. I assume the timeout will then determine if these additional services get freed at some point