I believe this is mainly down to the FAT16/ FAT32 filesystem on the SD cards. Those filesystems have never been particularly reliable, when those were the dominant hard drive formats, MANY users back then lost data (and backing up to floppy had its own set of issues).
This is why you have to unmount USB drives, if you pull the drive while data is still in cache would also create problems. The difference is when copying files to the drives, it's sequential, you may lose a file or two. When it's the OS using it as the main drive there are loads of write operations going on.
At least it's easier to add battery backup to a Pi then most other computers.
> I believe this is mainly down to the FAT16/ FAT32 filesystem on the SD cards.
Well I lost some to power failure, and they all had ext4 on it. Anecdotal I know, but I'll be avoiding RPi for anything that needs to persist data in the future.
In the past when I was using a rasppi (v1) as my media player, I used the SD card only for booting off of. The media files themselves were persisted on my nas, served over nfs. Using network storage really seems like the way to go, particularly now that the shared bus issue has been resolved. At the very least, real hard drives are much more efficient (byte/dollar) than SD cards.
The root partition is ext4, while the boot partition is FAT; plug it into a windows machine and it just sees the boot part, so people assume the whole thing is FAT
You can mitigate this somewhat with https://github.com/azlux/log2ram
With some finagling you can get them to boot an OS from an external disk then your SD card can just hold a read-only boot loader.