Конструктор ScopedDBConnection получает соединение из пула (если не может создать новое) и сохраняет его как закрытую переменную-член. Его метод get возвращает указатель на DBClientBase, я думаю, клиентскому коду не нужно удалять этот указатель, потому что метод done вернет его обратно в пул. Вот мой код, я прав.
ScopedDbConnection con(...);
DBClientBase* session = con.get();
//do something using session
...
//
con.done();// ignore session because done will return it back to connection pool