> In short, the system doesn't generate the information you need, where you need it, to tie these pieces together. Modifying existing elements of the backend protocol is not presently in the cards.
From my perspective this is clearly a bug as there is no way to define a function in a way that provides enough data to the reader.
Based upon that unargued point the only bug here is in the documentation, leaving the reader to assume that some effort will be made to chain together a function returns clause to a physical table through that table's automatically-generated composite type. We don't and never will modify the existing protocol message semantics in that respect.