I would say that SBCL and Clozure CL violate the Unicode Newline Guidelines:
Even if you know which characters represents NLF on your particular platform, on input and in interpretation, treat CR, LF, CRLF, and NEL the same. Only on output do you need to distinguish between them.
However, I think that trimming the return value is the wrong solution.
I think you need to use an implementation-specific :external-format
argument to open
the file with the correct (windows/CRLF) line termination mode.