@kevlin @xris this has been encouraged by MISRA C. *Much* auto code is marred by it.
@PeterSommerlad took a deep dive on this. IIRC, conclusion was it dates back to pre-structural era: don't jmp into/out of the middle of a procedure. It was then adapted by MISRA as a rule for ensuring mid-function `free`s never got skipped.
SESE stems from a time as a principle of structured programming. all current languages with call-return semantics follow it. so a procedure is already following SESE. That safety guidelines translated SESE to a single return statement is BS from people not knowing its origins. We filed a change request for against one of the ISO safety standards and abandoned single return requirements for MISRA-C++
the source is not MISRA but IEC/EN 61508-3 and ISO 26262 safety standards that mutated SESE to "single return statement per function" without understanding the implications of either. IMHO single return statement makes code more complex and thus more error prone. Therefore we fought to get rid of it.