How can anyone complain? It’s the Unix philosophy in action!
This pattern seems to be really common: https://github.com/search?l=C&q="popen+cat"&type=Code
In some cases the caller is piping cat output to grep or awk or something, which makes more sense. (Not a great design, but saves a lot of string processing code on the C side!)