The translation from “\n” to “\r\n” happens in the newer MINGW development system call popen() or _popen(). Both do the same text translation in current MINGW versions used.
In newLISP popen() is used only in the exec function and when writing CGI output in newLISP builtin web server (nl-web.c).
When using text just use the UNIX “\n” line-feed format as input on both UNIX and Windows. When you need strictly binary format on Windows then convert data to a binary file first then use exec on that: