Certain PoolProperties defaults are normally only set on connection creation, not on connection reuse, unless the ConnectionState interceptor is also explicitly configured (it's not by default). The necessity of this second step is easy to overlook. It would be nice if the javadoc for these settings (defaultAutoCommit, defaultTransactionIsolation, defaultReadOnly, defaultCatalog) pointed out this behavior and made a mention to the ConnectionState interceptor.
There's an existing example in removeAbandonedTimeout setter/getter, which reference the ResetAbandonedTimer interceptor.