Why not back up and consider your original question: What types of objects should you use a pool for?
In my opinion
you should use a pool for a type of object when that type of object uses a lot of some kind of resource, so that creating large numbers of it would stress the system.
So in real life you have
thread pools, because a thread consumes system resources and you don't want to create too many of them. Similarly with database connections.
I don't see any of those source code metrics you suggested as being of any use in answering this question.