I spent the better part of a day tracing down this very annoying problem, and I created a test setup in my 'sandbox' vault to verify that it is repeatable.
If a variable is linked to by a data card control and that control is hidden using control logic, it will be deleted under certain circumstances:
If other (visible) variables are updated via transitions, macros, add-ins or other code mechanisms, the 'hidden' variables are not harmed
If a user changes the value of a 'visible' variable by checking out, typing into the data card, saving and checking back in, the values in 'hidden' variables are deleted.
Once again for clarity: change a visible variable through code, hidden variables are OK... change a visible variable via the data card, hidden variables are deleted.
This is such absurd behavior that it must be a bug. I've verified that it's a repeatable phenomenon and I've unhidden all my system variables for the time being to prevent further data corruption. I mention it here to see if anybody else has seen this, or if it's a known problem that has been fixed, or if maybe I should report it to SW.
EPDM 2011 sp0