I apologize if it was suggested before, but I couldn't find it in the forum.
The problem:
What I see the main problem with bitcoin wallets (online or private) is that if somebody hacks into it, it can transfer all your bitcoins immediatelly and the transaction is irreversible.
The solution:
Suggesting to have two kinds of wallets:
1) Wallet for daily usage, which would allow the immediate transactions like the current wallets do. The users would typically use those with small amount of bitcoins needed for everyday use, similar like your real wallet having just small amount of cash.
2) Wallet for storing, which would not allow immediate transactions. Those transactions would be scheduled, and would execute only after certain time interval (let's say 24h or 48h).
Such pending transaction would be cancellable at any time during that interval. This feature would prevent the attacker to steal your bitcoins quickly. Using appropriate notifications for scheduling the transactions, the rightful owner would be able to cancel maliciously planned transactions.
You can transfer bitcoins to an offline or paper wallet. That money can't be spent until it is transferred back. Nobody can do that except you because it is offline. There are wallets (such as Armory) that support offline wallets.
Bitcoin transactions cannot be cancelled. That is a fundamental property of Bitcoin.
Encrypting your wallet is simple and provides basic protection that is sufficient for most people. Unfortunately, many people don't encrypt their wallets, and so some of them get ripped off. Nobody should use a wallet that is not both encrypted and backed up.