The point was, RETURNS returns 1 while RETURNS SETOF returns 0 .. n.
no RETURNS return "VALUE" (it is not a row) .. and in combination with SELECT - value will be a row. RETURNS SETOF returns rows
I intentionally excluded the data type of what is returned.
1 "VALUE" vs 0...n "VALUES"
Do you still fail to see the point 1 "VALUE" is special in the context of what a function returns?
sorry, I don't understand .. for me SRF functions are absolutly different monsters than scalar, array or composite function - so its impossible to compare it.