Many of these can be prevented by multisig and/or a hardware wallet with the seed phrase tucked away.
Sending to the wrong address can be fixed with smart contracts that associate addresses with easier identifiers. Swapping value/fee can be prevented with a simple safety check in the client software, to make sure the fee is reasonable.
It is possible, but sometimes it is not. If you sent money to wrong account, bank can't just take it back from other party account.
On the other hand, I by mistake sent bitcoin to a wrong address and couldn't believe that someone who owned that address sent me all bitcoins back week or so later. There are good souls out there :)
- lose key to wallet
- lose wallet due to inadequate backups
- lose contents of "brainwallet" due to weak password
- lose wallet/contents due to malware targeting bitcoin
- lose wallet/contents due to bug in client software (recommendations change frequently)
- send to merchant, defrauded in the old-fashioned way
- keep on exchange for trading, exchange collapses
- erroneously swap transaction value and transaction fee, or other fat-finger errors
- erroneously send to wrong or non-existent target address