Are you afraid the Postgres tuple-at-a-time iterator architecture is going to be limiting for your long term performance optimizations?
Presumably the custom operators you’ve implemented in your query plan can push projection and predicates down to a more efficient architecture without so many indirect function calls / branches / etc, but once you get up past that, aren’t you back in iterator land?