Принцип этого цикла в том, что он обрабатывает результат запроса построчно и после последнего элемента felch() вернет false и цикл закончится. В данном конкретном случае можно обойтись и без него, ведь пара емейл-пароль по-определению должна быть уникальна, и соответственно итерация будет только одна.
Скорее всего автор просто по привычке такую обработку результата написал. ИМХО это нормальная практика, для производительности это несущественно, а иногда случается, что архитектура приложения резко меняется, и в методе где всегда обрабатывался только 1 результат их может стать несколько, в случае когда обработка уже в цикле изменения в коде проходят безболезненней.