Easily preventable. In the one flash crash, the CME stopped trading for something like 5 minutes.
Preventing spoofing: also easily remedied....charge for cancel orders, put a timer on orders, limit the # of cancels per hour, etc, etc.
Why don't they do it is the big question.......