Мне кажется, RETURN из середины функции сродни continue и break. При неуемном использовании затрудняет понимание программы и поправки - логика получается очень хрупкой. По сути, это завуалированный GOTO, и реализован компилятором именно так. Нарушает структурированный принцип - один вход один выход. К сожалению (моему), в КП он есть, и в ББ встречается чаще, чем мне бы хотелось. Вот жду и надеюсь, может, выкинут его - Вирт же вроде выкинул из поздних Оберонов. И в раннем Паскале/72 их не было емнип. И еще даже в турбопаскале для функций писали Func := expr. А в позднем Обероне вроде и синтаксис приятнее стал - какое-то присваивание после END.