Interesting idea. It'd probably be more counterfeit-proof than paper currency.
However, you could create a counterfeit card that does all of the signing and stuff, but when you try to withdraw the bitcoins, it deletes the private key. Whoever creates the card gets to trade it and keep the BTC it represents.
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.
Obviously the bitcoin software would have to be modified to accept (or reject) such conditional transactions, but that doesn't sound like outside the realm of feasibility.
If it did this, it would permanently negate the need for the card to ever spill the private key to give up the bitcoins, or to generate a brand new key pair. Dumping out the coins would simply mean broadcasting the conditional transaction in a timely manner. Once block X came and went, the card would still be good if the bitcoins were merely "given back" to the card's address.