собственно вопрос - когда в рамках разумности - нельзя обойтись без этого оператора
С помощью yield можно получить результат без вычислений других результатов... Допустим есть некая коллекция которую нужно сгенерировать по некоторому хитрому алгоритму.... Так вот, с помощью yield ты можешь получить результат не генерируя всю коллекцию сразу. А сгенерировать только нужный элемент когда к нему обратишся.
Это неплохо сэкономит ресурсы если коллекция особенно велика или же если получение каждого обьекта долгое (например привязано к обращению к серверу, что создает значительную задержку).
Примеры можно посмотреть здесь: В чем польза yield?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости