¿Cuándo debería usar file.read () o file.readlines ()?

Noté que si itero sobre un archivo que abrí, es mucho más rápido iterar sobre él sin "leerlo".

es decir

l = open('file','r')
for line in l:
    pass (or code)

es mucho más rápido que

l = open('file','r')
for line in l.read() / l.readlines():
    pass (or code)

El segundo ciclo tomará alrededor de 1.5 veces más tiempo (usé timeit sobre el mismo archivo exacto, y los resultados fueron 0.442 vs. 0.660), y daría el mismo resultado.

Entonces, ¿cuándo debería usar .read () o .readlines ()?

Como siempre necesito iterar sobre el archivo que estoy leyendo, y después de aprender por las malas que tan lento puede ser el .read () en datos grandes, parece que no puedo imaginar volver a usarlo.