The Hong Kong Octopus hasn't been cracked...yet. With half-decent encryption, this could be prevented, especially since we're waiting so long for something off-the-shelf.
I'm no engineer or crypto expert or anything like that, so bear that in mind, but it seems silly to me to use any kind of system, with any sort of crypto, which stores actual value on the card. I feel like it only makes sense to have some sort of ID on the card, which is then used to access a specific account via the network in a database somewhere, sort of like a debit card. Of course nothing you do to your debit card can ever put more value on your account, because the card itself doesn't store value. These transit cards should work the same way, I think.
It is appropriate to store the card value on the card PROVIDED it is used as a checksum against a central value as you indicated. The catch, of course, is the infrastructure required to run several thousand queries per second with sub-millisecond response times on a system with thousands of data entry locations across the city is rather difficult -- especially when implemented on roaming entry/exit points like buses.
I think it could be accomplished with a distributed database, with a each point of entry (a bus, subway station, whatever) having a full version, with ongoing synchronization. Synching shouldn't be an issue, as using one card in multiple locations is impossible without forgery. It basically gives very low latency without relying on balance info on the card.
Of course, this would be fairly costly, I imagine.