Что лучше возвращать, когда уже нечего: false или null?
true - положительный результат
false- отрицательный результат
null - отсутствие результата.
Заменить одним генератором yield
Соответственно кончились данные - foreach автоматически и штатно завершается. Просто, наглядно.