It's my understanding that
fread doesn't care about file mode - text vs binary. If you look
here[
^] you'll see that fread's behaviour is defined in terms of multiple calls to fgetc, which in turn makes no mention of end of line mappings, just a stream of bytes (with a comment that bytes and characters aren't necessarily the same).
I think a similar thing applies to fwrite.
Footnote:
I'm old enough to remember when teletypes screwed up if you didn't use \r\n, or even \r\n\0xff\0xff\0xff on some machines. (The carriage returned slowly.) To me, Unix/C using just \n was the aberration, and things haven't improved in the subsequent 30-some years, as you observe.