My thought is that perhaps the "solidity" contract language is not well-enough thought through.
Bugs in games is one thing, but contracts needs to be rock solid, easy to understand and easy to review.
When things like this happens multiple times, and even after code reviews, then it's too easy to just blame the contract authors.