I think we have the same issue with regular parser. If you for instance are using a Heredoc to contain a template that heredoc would not contain CR. Thus, the reading of all .pp source code should use the same mechanism to enable keeping the CR characters.
When doing this, it is important that it is as fast as possible.
I'm not able to reproduce this when running puppet apply on Windows, or when a Windows agent retrieves a catalog from a Linux puppetserver. I'm going to close, but feel free to reopen with steps to reproduce.