¿Es necesario cerrar los archivos que no tienen referencia a ellos?

Como principiante completo en programación, estoy tratando de entender los conceptos básicos de abrir y cerrar archivos. Un ejercicio que estoy haciendo es crear un script que me permita copiar el contenido de un archivo a otro.

in_file = open(from_file)
indata = in_file.read()

out_file = open(to_file, 'w')
out_file.write(indata)

out_file.close()
in_file.close()

He intentado acortar este código y se me ocurrió esto:

indata = open(from_file).read()
open(to_file, 'w').write(indata)

Esto funciona y me parece un poco más eficiente. Sin embargo, aquí también me confundo. Creo que omití las referencias a los archivos abiertos; no había necesidad de las variables in_file y out_file. Sin embargo, ¿esto me deja con dos archivos que están abiertos, pero que no tienen nada que se refiera a ellos? ¿Cómo cierro estos, o no hay necesidad de hacerlo?

Cualquier ayuda que arroje algo de luz sobre este tema es muy apreciada.

Respuestas a la pregunta(6)

Su respuesta a la pregunta