Hola Miguel, espero te encuentres bien.
Estuve viendo porque tambien tenia la misma duda que tu, pero no se si te pudiste percatar que cuando creas una conexion de tipo ConnectionFactory, no tienes acceso a los mismos metodos que la interface Connection.
Porque, si te fijas la clase ConnectionFactory es una clase publica normal , la puedes instanciar y toda la cosa, pero al momento de tu intetar acceder a los objetos de dicha clase solo tendras el metodo recuperaConexion(), porque es el unico que tiene.
Ahora, si instancias un objeto de tipo Connection, diciendo que sera una nueva clase de tipo ConnectionFactory y a su vez haciendo el llamado al metodo recuperaConexion() (que es un metodo de tipo Connection), si podras acceder a los metodos de Connection, como es el caso de .close();.
Fue la conclusion que pude obtener al momento de analisar el funcionamiento. Espero haberme dado a entender.
Un saludos desde Rep. Dom. :)