Thanks. If that 4GB limit is true, then there must be some strange "range" of filesizes for DSD where JRiver attempts to do memory playback and fails.
I can easily avoid this issue by simply disabling memory playback as needed (I only have a few songs that are bigger than 4GB anyway).
However, I only discovered this when I was trying to figure out why tag editing on certain large DSD files corrupt them (as mentioned in my first post), so I thought maybe these two issues could be inter-related. I am just imagining that JRiver temporarily puts the file into memory for tag embedding, and that embeds the tag at an incorrect location, thus corrupts the file. This is just my wild guess.
It just seems coincidental that those large DSD files that causes memory playback truncation also causes file truncation by tagging.
I take it back. After investigating more, I found that the tagging issue is not related to Memory Playback. I have some 4GB+ DSD files that tags correctly (even if memory playback causes truncation), whereas others that do cause file corruption issues. I need to investigate this a bit further.