Couldn't you create a new listing for a card when it is modified? If a card named "DPsycho Warrior" was card number 478, and it underwent a change in a future update, the outdated version could remain as card #478, and the newly modified version could be assigned to the next available number. Existing decks would then need to be auto-refreshed so anyone foolish enough to use as silly a card as "DPsycho Warrior" would have their decks pointing to the correct card. In this way, as another benefit, games already in progress during the time of an update wouldn't have to have their cards-in-deck suddenly change on them, something that occurs currently.
I recognize that this may make the card database much longer than necessary if several changes are made along the line, and existing cards would probably need a new tag marking them as Active/Inactive. Also, updating existing decks might be unwieldy, with the best option there to perhaps be to have the system drop cards that have become flagged Inactive. These considerations taken into account, would it be at all feasible?