If one is using Windows 7 or newer and doesn't shut down properly the computer (or power failures are occurring), the file system might be the culprit (along a few other compounding factors to be mentioned a bit later).
Also, if the "hibernate" or "suspend" features are used, the "peers.dat" can end up containing peers that banned one's host on grounds of misbehavior (i.e. they initiated a request, one's host started to respond then went silent for the rest of the communication).
On top of those two major reasons (largely ignored by users and, hopefully, less ignored by devs), there lies another monster reason for apparently inexplicable behaviors: leveldb 4.8, the most used database in crypto-currencies wallets and daemons. Just read about leveldb on Wikipedia:
LevelDB is widely noted for being unreliable and databases it manages are prone to corruption. Academic studies of past versions of LevelDB have found that, under some file systems, the data stored in those versions of LevelDB might become inconsistent after a system crash or power failure. LevelDB corruption is so commonplace that corruption detection has to be built in to applications that use it.
Even the mighty Bitcoin is prone to database corruption, but with code managed by an entire foundation... I bet their code includes checks and repairs that other devs are just not noticing... and even so, BTC core wallet might give a bit of tachycardia to a quite large userbase from time to time.
Lesson to learn: back up your "wallet.dat" AND
your private keys in as many (secure) ways you can imagine. Then, in case of a malfunction, use your brain to figure out what might have happened, then try to solve the problem by yourself in a consistent and rational way
. If that doesn't work (you reached the limits of your current knowledge), then ask politely
Usually, when troubles occur, reinstalling and resync-ing (either from scratch, from a bootstrap.dat or from a database snapshot) solves the problem. But, if the problem is user's behavior... there's not much to be done.