Почему goto это плохо?

Вот говорят постоянно, что goto использовать нельзя, что это плохо, что это неправильно, что это чуть-ли не смертный грех, а вот вопрос: почему? Ведь раньше же goto вообще использовался повсеместно, и в то время он особых проблем никому не делал. Так почему же сейчас при выходе из цикла нельзя использовать оператор goto вместо break?

Вопрос о целесообразности использования goto и "хорошо это или плохо" - это как извечный вопрос "в чём смысл жизни". Спорить об этом по крайней мере безрассудно и глупо.

Как по мне, то :

1. Если оператор есть, значит его можно использовать. Другой вопрос - всему должна быть мера, всему должен быть предел. Процесс написания кода должен базироваться не на "общепринятых правилах морали" и не на мнении "авторитетных людей", а на собственном опыте, здравом смысле и определённой ситуации. Я, например, не вижу вообще ничего плохого в том что б выйти с помощью goto из 2х циклов сразу, вместо того что б вводить булевые флаги и тд.

2. При использовании goto стоит следовать простым незыблемым правилам:

1) Заходить в блок программы с помощью данного оператора не стоит

2) Выходить из блока программы или перемещаться в его пределах можно, если есть такая необходимость

3. Так сложилось исторически, что все операторы условия и цикла так или иначе неявно вызывают оператор goto. Так что, почему бы не отказаться от всех операторов вообще?

Вот здесь есть очень интересная статья:

https://habr.com/post/271131/