The convention here is to inline or, at worse, bottom post, trimming irrelevant context.
I'm guessing that row() isn't really a function, then? And even so, assuming this is the important difference, how is the ability to change row structure on the fly making the cast possible? In what way would the query calling get_row() be critical?
Row() is pure syntax. It distinguishes (col) vs. row(col) where the first is just a column in parentheses and the second is a composite with one column member.
David J.