Один из ключевых принципов Дейкстры - верификация по построению (а не по факту).

Соответственно, не надо "просто добавлять Yeld в существующую программу".

Если Вы возьмёте существующую структурную программу и добавите в неё goto, то тоже что-нибудь может поломаться ))

Параллельно работающие обработчики (те же Action) есть и без сопрограмм. Если Вы начнёте в них не следить за зависимостями по общим данным - то получите те же самые проблемы.
Конечные автоматы, работающие асинхронно (а они - единственная "более консервативная" замена сопрограммам в серверных задачах) - это тот ещё GOTO, вот где GOTO.

Речь-то о том, что из всех видов параллелизма сопрограммы позволяют контролировать ситуацию лучше всего (требуя совсем немного доп. анализа от программиста по сравнению с последовательным программированием).