I have observed something similar in the past, in two occasions
Sure –– but those kinds of bugs can really produce all sorts of weird effects and problems!

That is, the symptoms match only because of random chance, not because they correlated somehow.
I had this happen to me in Windows (XP, NTFS) over a decade ago: at some point an mp3 music file was corrupted such that it contained random excerpts of other mp3 files.
It really does happen because of the different file system model in the Windows kernel. In the MS-DOS era, on FAT12/16/32 volumes, this was even more common. In both cases, it boils down to the file system model considering each allocated sector to be part of a file; whereas Unix/POSIX/Linux inode model combines file data and metadata (but not the name) into a logical object, that occupies a set of sectors.
In the inode model, when a file is extended the kernel grabs some unused sectors, and writes the new or modified data to them, and finally the inode is updated to reflect the modified size and which sectors are allocated to this file. (Some filesystems also maintain a separate list or bitmap of unused sectors; this is usually updated last. POSIX
fdatasync() returns when the data written to the file has been sent to the storage device, and
fsync() returns when both the data and the inode updates have been sent to the storage device. In essence, this is integral to the inode model, and not just an implementation detail.
The end result is that if the kernel crashes or power is lost in the middle of a filesystem metadata update, NTFS and FAT will generate unnamed files from the sectors that were allocated and saved but metadata not yet reflected in the file entry (MFT), whereas for inode-based filesystems such data is simply lost: the lost data was essentially written to unallocated sectors.
I am not a filesystem specialist, and do not know exactly how much journaling helps (quantitatively, I mean). Anecdotally/qualitatively, it seems to significantly reduce the time window for the above to happen, making it much rarer, but cannot completely eliminate it.
Now, the temptation would be to argue whether it is better to make the data recoverable instead of just discarding it. Fact is, most filesystem
research in the last fifty years has used the inode model as a basis, because it has proven more efficient and more robust; the time windows during which crashes lose data are much shorter than they are in simplistic filesystems like NTFS and FAT/exFAT. (I'm not referring to Linux-originated ones like ext2/3/4 and btrfs, but
XFS and
ZFS, and research papers on file systems at ACM, and presentations at USENIX.) To simplify, where FAT and NTFS were designed essentially for single-user workstation use, inode-model filesystems were designed to work for large multi-user concurrent systems where robustness is a key requirement.
All this also means that writing or regularly appending or modifying important data files in a reliable manner differs between Windows and POSIXy OSes.

Similar to how serial port/terminal-like devices are handled completely differently (POSIX uses
termios), these differences make writing portable applications, services and libraries less desirable, because portability requires compromises affecting efficiency and robustness. (In particular, I've found
all cross-platform serial libraries' POSIX implementations pretty much utter crap. For data files, most developers don't even check their low-level calls for errors anyways ("I'll add them later", or "if that error happens, the user has bigger issues to worry about", and such inanities), so they mostly just throw data at the storage and hope it sticks, on all OSes.)
My solution to this is to ignore Windows compatibility, and limit myself to POSIXy systems. It annoys me that others see this as dissing Microsoft, while it really is just about not willing to do the compromises required for compatibility between the completely different approaches. I'm not even saying the Windows approach is any worse, just incompatible with what I like to use unless compromises that I do not want are made! (Although, I am saying NTFS is simplistic and not very good compared to ext4-on-LVM, XFS, or ZFS, for the basic reasons outlined above.)
Apologies for the rant-y post.
