"Mas se chamarmos o mesmo método novamente, veremos que uma nova conexão será criada."
Não consegui ver. Os dois objetos retornados para mim pareceram idênticos. Não consegui achar nenhum endereço de memória indicando que se tratava de objetos diferentes. Como faço para distinguir?
(Não valei ser via comparação de referências, queria ver algo como endereços nos debugger das linguagens clássicas ;)