You design software according to intended spec, and then provide safeguards for each module when it makes sense.
You don't design software on the premise that nothing works as intended and spec is thrown out of the window. If your software is full of bugs then you've failed on multiple levels and that's just one of them.
And in this case, the spec required by me and other consumers is that application and OS state remain completely independent.