A viable countermeasure might be that instead of signing a nonce, it signs a conditional transaction that is only good before block number X, and makes the highest X ever emitted for such a transaction available to any device reading the card. The card would never know if it was forking over the bitcoins for real, but any reader who knew the current block count was well beyond max(X) could trust that the last transaction it emitted was void.
This can't be implemented because it breaks certain transaction guarantees. In particular, it would allow transactions with more than 6 confirmations to be accidentally reversed due to network segmentation.
We can't safely do OP_BLOCKNUMBER. In the event of a block chain reorg after a segmentation, transactions need to be able to get into the chain in a later block. The OP_BLOCKNUMBER transaction and all its dependants would become invalid. This wouldn't be fair to later owners of the coins who weren't involved in the time limited transaction.
Bitcoin already has code to
delay transaction validity until a certain time, but it will never expire transactions.
BTC addresses could have a "dual signature" scheme, where creating a valid transaction to spend the coins requires a second signature.
This is already supported by the protocol.