That's not a bug, that's just how it works.
You can get the other way with something like
SELECT f.* FROM ..., LATERAL fn(...) f;
regards, tom lane