What are the contents of the wallet.dat file? What is Key pool, default key and reserve keys?
The page you are referring to on the Bitcoin wiki is pretty dated and doesn't really relate to current behavior in Bitcoin Core. Be aware that a lot of the wiki is like this. "Default key" isn't a phrase in common use, I can't fathom what that page could have been talking about in the context of Bitcoin Core. 

Reserve keys and the keypool are essentially one and the same. The concept is born out of the problem that people would make a wallet backup, create a few new addresses and receive coins there, restore from a day old backup and find that all their money had disappeared. 

The basic solution is to pre-generate a number of addresses and store them in the wallet file, when the client needs a new address it uses the oldest fresh key it has available. The resulting wallet file backup can be safe for as many future transactions as there are keys in the keypool (100 has been the default for a long time), after which point the backup will again become stale and money lost if the user has to recover from it. It's important to keep in mind that making outgoing transactions also consumes a reserved key as one needs to be used for a change address as well, this property makes it difficult for users to know when they need to make a new backup.  

The keypool design prevents some very simple mistakes, but it's still easy to lose money to poor backup practices. Hierarchical Deterministic (BIP32) wallets are significantly safer as the backups never become stake, and this is instead used in more modern wallets. The Bitcoin Core wallet tends to be the most conservative and so is slow to move away from the keypool, but it will eventually happen.