Ничто не мешает вам поставить return
в середине функции, хотя некоторые люди могут утверждать, что это плохой стиль.
Основная мотивация этой идеи заключается в том, что если у вас есть несколько точек возврата вваша функция сложнее поддерживать код очистки, который будет распространяться при каждом возврате;однако, используя современный шаблон RAII (который требуется, если вы хотите, чтобы ваш код был безопасным для исключений), у вас не должно возникнуть проблем с наличием нескольких точек выхода: кода очистки (который содержится в деструкторахв любом случае будут называться ресурсы-объекты).