The gist of my comment was that I believed harddisks worked on the same principle, i.e. there is a microcontroller which assists with "complex tasks necessary to create an abstraction of reliable" storage from a "unreliable and unpredictably fragmented" medium. Your reply doesn't address my tentative claim.
Main difference is in persistence of mapping between physical spot in space/time continuum where your data is stored, and a virtual sector number.
Hard drives/ raw flash/ CompactFlash / SmartMedia / I think also xD - all of those map more or less 1:1, and let You, the user, choose physical spot on the medium. Hard drives over time gained ability to remap bad sectors, but they do it only when encountering unrecoverable error, and you can still get physical address from the Service Area (g-list, p-list).
Secure Digital / Memory Stick / SSD - those ones keep virtual mapping that is dynamic and constantly changing, they also run housekeeping jobs in the background sorting/shuffling data around, erasing continuous regions to optimize write speed etc. Youm never know where your data is stored exactly (unless you know particular flash controller used and its mapping algorithm).
Back to Daves camera. SD card spec does have CRC32, but vendors notoriously ignore it or simply dont implement in the first place. This can cause a situation where camera thinks its writing data when one of the 4 data pins is randomly glitched. Then you have bugs in fat implementations in embedded firmware, all camera vendors want you to format card inside the camera, because firmware might not be able to deal with fragmentation, unusual filesystem layout etc.
Edit: they are also rather adamant about deleting files ONLY inside camera. Card that was inserted into a pc, files deleted there, and inserted back into camera is _NOT GUARANTEED TO WORK RELIABLY_ because of said filesystem handling bugs. This might be what Dave is experiencing.
Yes, this is stupid in 2014, 27 years into Fat lifecycle. But so is over 10000 global variables in Toyota car computer controlling fly-by-wire throttle.