Ну нет, секция ELSE в WHILE - это чисто "от Сириуса" ... Теряюсь в догадках - будем считать, что Kemet меня заинтриговал..
Ан нет никакой интриги.
Мы занимаемся специфическими задачами, часто на специфическом оборудовании, когда каждая лишняя команда - лишняя. Поэтому приходится заниматься ручной оптимизацией. Можно сказать, что ручная оптимизация отжила своё, но, кто-нибудь задавал себе вопрос почему оберонистые компиляторы не шибко умные и зачем там DEC/INC, если их можно выразить через банальный +-1.
Что касается ручной оптимизации, то вспоминается процессор DEC Alpha. Он был самым производительным именно потому, что инженеры DEC, в отличии от других, применяли не автоматизированные средства проектирования. DEC Alpha это в буквальном смысле ручная работа. И именно такие подходы сейчас применяются при проектировании современных процессоров, т.е. после Alpha произошел откат от автоматизированного проектирования к ручному.
Что касается циклов, то у нас принят стандарт или паттерн, в соответствии с которым, если что-то связанное с циклом можно сделать вне цикла и до входа в него, должно быть сделано, никаких дополнительных проверок после выхода из цикла или блоков с ним связанных делать не нужно, все проверки и приведения уже выполнены. Это очень важно, ведь тот, кто потом будет оптимизировать цикл должен точно знать, где он заканчивается. Если у кого-то не получается соответствовать такому паттерну ( а у новичнов не получается и пишут как придётся ) и он не может оптимизировать цикл, он помещает свой "лишний" код, в котором проводит проверку правильности завершения цикла и т.п., в секцию ELSE цикла WHILE, тем самым логически его ограничивая. В дальнейшем ни у кого не возникает вопросов, что к чему относится.
Конечно, при оптимизации никто не может проста поменять а на б без всякого обоснования, но писать простанные описания и некогда и не каждый умеет такие кляузы сочинять. Поэтому был придуман специальные обозначения для таких целей. Но это уже ни к циклу WHILE, ни к Сириусу отношения не имеет.