I know purists always complain about unnecessary cats, but I always find it useful to start with "head" or "tail" in the first position to figure out my pipeline, and then replace it with cat when it's all working.
And if the extra cat is actually making a measurable difference, maybe that's a good signal that it's time to rewrite it in C.