Pooling does not guarantee a single connection. For each concurrently active (logical) connection you need one physical connection. So if you have 10 threads each using a connection instance, or for some reason are opening 10 connections on a single thread, you will see 10 physical connections.
A single session is assigned to a single connection. Each connection can have at most one session at the same time.