It is safe to convert backslashes to slashes only when it is known that the literal string is indeed a file name. This condition holds for command arguments, but not for groff input text. "Fixing" .lf commands is of a piece with the maddening AI of Microsoft Word and Open Office, which think that they know what you mean.*
If .lf requests get fixed, should not .so requests be fixed too? What happens then to .so \*[input_file]? Treat \* differently \f in context? And what if one doesn't use a preprocessor and has defined .lf to mean something else? Special cases multiply without end. To return to my first sentence. It may be reasonable to canonicalize file-name command arguments in groff and preprocessors. Once done, no further special treatment is required, except at calls of the Windows API, for which slashes must get rewritten, which apparently happens already. Doug * For a ludicrous example, when I type my own name, M. Douglas McIlroy at the beginning of a line--as for a signature or author line-- Open Office thinks that I've begun a paragraph numbered with a Roman numeral, and proceeds to tack "MI." onto the beginning of the next line! Groff has blessidly little AI. Let's keep it so.