Te sugiero que para aclarar esa duda que te queda, leas la ayuda en su topico
TDataSet.Eof, allí te indican claramente cual es la función que cumple EOF... una vez leido esto vas a ver que EOF te indica el final de los registros (End-Of-File) y por eso el while lo evalua cada vez que tiene que hacerlo, hasta que dicha función nos devuelva True... No se si me hice entender, espero que si

.