But I stand by returning OUT params and records at the same time.
You mean you dislike adding the optional returns clause when output parameters exist?
Correct. It breaks the distinction between function and procedure.
How so?
The two distinctions are functions can produce sets while procedures get transaction control.
They both can produce a single multi-column output record. The presence or absence of the optional return clause on a function definition doesn’t change that fact.
"A function returns a value*, but a procedure does not."