you ignored "and mark every sensitive field with a special value", which is the key part. As long as all sensitive data has been essentially zero'd out (for some value of zero), all is fine.
Marking a field sounds to me like labeling and not zeroing it out.
What if "a special value" == NULL?
If you choose that value, and it's the only, or one of the few values that break your software, then it's your fault.