Can custom functions return an entire fetch?

Can custom functions return an entire fetch?

It seems, and I've been told by Support, that custom functions cannot return the entirety of a fetch: only the record IDs are returned.

I've tested various ideas and I've confirmed this to be true.

I can use the record IDs returned by the function to run ANOTHER fetch inline so I can reference fields, but this is inelegant.

My question is: has anyone found a workaround other than the one I just mentioned?

I ask because I have a number of complex fetches, and I'd like to have a central library of fetches so I'm not constantly rewriting them (and getting them wrong).