I hate to distract from the robust discussion on C coding style with a comment about groff, but I noticed what appears to be a missing line from the changes commit d592d320cd43cf4ecee67a7aa80b52691671465d made to doc/groff.texi. Part of the added text reads:
@Example .ll 1 .hy 48 @endExample returns @Example s- plit- t- in- g @endExample but in fact the example code produces no output at all, because there is no input text, only the two requests to set parameters. It seems the word "splitting" should be on a third input line (after the .hy request).