Is this normal? Did it happen in your phone?
2 Answers
Some file systems are pretty robust, if you used ext3/4 and yaffs2, the chance of getting caught in situation where the filesystem cannot recover is scarcer than winning a lottery. These file system utilizes logging to revert inconsistencies; At every startup, Android will check the filesystem's log, if the log is not empty that means the file system is not unmounted cleanly and it will automatically perform a quick recovery (you usually won't notice anything, just a 3-5 seconds longer startup). There is small chance that the last data that have not been "committed" may be lost, but it is -- for all practical purpose -- impossible to lose the whole file system.
Unfortunately, some filesystems commonly used in certain Android devices are not so robust, many manufacturers partition their SD cards as FAT, and with FAT every time your device crashes, you are playing a game of Russian Roulette. Samsung phones had a proprietary variant of FAT, which they called RFS (Robust File System), they claim RFS is compatible with FAT but is robust in the event of crash; so far, I hadn't observed any data corruption on my Samsung phone, though it is still better to be wary since Samsung is bad at writing software.
There's always a risk with not cleanly unmounting a file system.
By pulling the battery, you're not allowing the system to finish up what it's doing on the SD card, and if you catch it at the right time, it can sadly screw things up pretty badly.
With some luck, you may be able to run a diagnostic on the file system and recover some of the data, but it all depends on the specifics.