rtf2rtf is a program to postprocess the raw RTF generated by the mapping files.
It is used by other programs in sgml-tools (v1), and usually normal user does not need to use this program directly.
Following is quoted from the README in the source tree.
I'm not proud of this code. It's a hack foisted upon a hack, nested within another hack or two. It sort of works well enough for my purposes (generating WinHelp .RTF files for my documents), but it could definitely use a redesign/rewrite. It started as a simple pertubation of the html2html filter, but got ugly very quickly...
I shamelessly blame the RTF format for most of the hackery here -- RTF is not a _language_ like LaTeX or ROFF -- it's just a file format. So, we can't rely on RTF to do even simple things like "insert a paragraph break here only if the previous token was not also a paragraph break. Since the SGML front end has no conditional processing capabilities, multiple blank likes in the SGML get translated to multiple para breaks in the RTF. That's why we use a "lex" filter (rtf2rtf) to postprocess the raw RTF generated by the mapping files.
Again: I offer this to the Linuxdoc community with the hopes that it will be useful to others and that someone else can help flesh out the missing pieces. What? Missing pieces? Yes, recall that I say it works "well enough for my purposes". The replacement files (general, mapping) started out like as the latex replacement files. Much of them still _are_ the latex replacement files. I only converted those parts that are actually used by my documents. Your documents may require more of the files to be translated to RTF.
Since I'm using these mappings for actual documentation, I plan on maintaining this backend, so please send me any improvements -- I'll coordinate with Greg to make sure they get into the the next official release.