Depends on the cause of the error I guess.  There may be errors that don't appear until you actually try to *use* the returned connection, and that we should also retry on (e.g. the server killed an idle connection but it's still in the pool).  Perhaps the retry logic should move up to a higher level in a subsequent refactor.