For anyone who doesn't know about the DAO exploit you can read up on it here.
It seems to me like the attack could have been stopped if payouts went through another contract that was really simple but acted like a spigot. They would have still lost money but the spigot contract would have stopped the unstoppable flow of money out that ended up requiring a hard fork.
I feel like most contracts should be using some sort of spigot contract to mitigate bugs.
Am I right in this? Or are there other things I'm not considering?