I'll write up a bit on how it caches this for performance sake and note that the Coin.Value() and Coin.ValueAge() must not change over the interval that CoinSet is being modified.  I'm more concerned with ValueAge since I can imagine a Coin implementation that updates the numConfs based on newly received blocks.