V jazyce s levnými výjimkami ano. Python to tak má a vyskočit z několika úrovní zanoření výjimkou StopIteration je čisté a levné. Psát spoustu kódu na to samé s předáváním hodnoty by ten kód hodně znepřehlednilo.
Třeba v C++ už to zas tak levný a čistý přístup není.