>Does it have support for understanding that its more convenient for text files on Windows to have CRLF endings, and that it should hide this when editing cross-platform files on Windows and posix platforms?
Set autocrlf appropriately (I *believe* it's enabled by default on Windows). It even has the 'input' setting which will convert CRLF to LF when committing but not when checking out, which can be very useful if you ever copy files from one system to another, and I always enable on Linux.
Git has the expected heuristics to decide whether a file is binary or text, along with the ability to add a hint if you need to.
It's also capable of detecting a mixture of line endings and can be configured to convert them all one way or the other if you want it to (see the safecrlf option).
(Although I have to say that it's been *years* since I came across a single Windows application that choked on LF-only line endings, and whose name isn't 'notepad.exe'.)
>To be honest, having upstream devs who care about the cross-platform stuff
Git seems to have more attention paid to the CRLF problem than the other VCSes I've used in the past, though I've never used Mercurial. Not to mention that portability is a big deal for Git which goes to great lengths to work on a wide variety of platforms.