Я слышал, что goto использовать НЕЖЕЛАТЕЛЬНО. А что насчет while(true)? В функции есть много if'ов, в которых есть return. Моветон ли while(true)?
Слышал звон )))
Мне вот почему-то кажется, что выход из языковой конструкции (цикла, или функции, и тд) в объемлющий её код не создаёт никаких затруднений.
А вот впрыгивание внутрь такой конструкции, на произвольную строку черевато.
Попробуй самостоятельно подумать эту мысль, а не получится - просто запомни её )
1 - моветон 
2 - другой вопрос, что иногда это классное решение (когда сокращает количество строк кода... до одной или двух)
... если строк кода больше 2х - вы роете себе яму... может все будет работать хорошо... а может вам придется провести много времени в отладчике... при чем далеко не сразу может появится стечение обстоятельств, которое все рушит
ps это вопрос читаемости/понимаемости кода. когда строк 2-3 - читаемость легкая