Как уже указывалось, наличие более одного оператора return имеет недостаток: их трудно найти. OTOH в некоторых случаях добавленная логика, необходимая для выхода из этого оператора return, хуже, чем проблема, которую решает стиль.
Основная проблема, которую я знаю о множественных возвратах, состоит в том, что вы можете быстро забыть выполнить некоторую очистку или подобное в новой точке возврата. ИМХО, это такая же проблема с единственной формой возврата, потому что путь перехода должен помнить, чтобы включить этот код, а не другой код. Одним из решений этой проблемы, доступным на некоторых языках, таких как c #, является блок finally, или он точнее, из оператора scope , как показано здесь . (Хорошо, я возьму свою мыльницу сейчас)