В первом случае предполагается, что в записях поля типа BOOLEAN устанавливаются при выделении памяти в FALSE. Поэтому первое чтение пройдет гарантированно. Также предполагается, что в process при этом есть корректная обработка ситуации с r.eof = TRUE.

Второй же вариант более общий и не зависит от каких либо допущений о реализации компилятора и обработчика.

Но тут нельзя сказать, что какой-то вариант более правильный.