Return actually return a value in a
ClearAll[f] f = Function[x, Return[x + 1]]; f (* Return *)
Contrast with a pattern-defined function:
ClearAll[f] f[x_] := Return[x + 1] f (* 2 *)
After reading How does Return work? it seems that the answer turns on an odd behavioral difference in the presence of
SetDelayed, but (i) can one deduce this difference from the documentation, and (ii) is there a clear motivation for this difference?