xdsl писал(а): В то-же время goto процветает как один из скрытых механизмов работы условных и циклических опереаторов, как механизм выхода из циклов и функций, и т.п.
В каком это смысле? Вы же не имеете в виду машинный язык, в противном случае речь бы шла о машинно-ориентированном языке. Вот если нет goto, то его и нет, а оператор break (или exit - в некоторых языках) - это оператор break, совсем с другой функциональностью. Замечу кстати, что в языке FoxPro напроч отсутствует goto (или подобный ему) и ничего, можно писать программу любой сложности.
Критика goto заключается в том, что если есть возможность, то ей обязательно воспользуются, но наличие goto действительно затрудняет анализ программы, разрушает ее блоковую структуру. Такие возможности следует просто устранять. Еще один характерный пример - язык C++. Этот язык содержит возможности и языка C (классического) и объектного языка C++. Но зачастую пишутся программы, где перемешаны оба стиля. В результате получаются чрезвычайно сложные для анализа программы. Отсюда и тенденция к созданию языков подобных Java и C#.
Высказав столь жесткую точку зрения, замечу, что и я грешен (а кто не грешен, разве, что бог, да может еще Дональд Кнут) и иногда пользуюсь оператором goto.