Crap. That bloody login prompt destroyed my post. And the censoring system is destroying my cursing. I'll try to restore:
I don't doubt vValues usefulness, it's rather close to what I thought tFunction would become. However, it should know it's place. I think it should be used as a replacement for full blown script where the script can't be used* or can be used, but with a too big performance penalty (in core rendering routines, ignoring Luke's trolling attempt since in the end, ALL data ends up in the renderer). I'd optimize vValue for that purpose. I'd probably restrict it to floats, that gives it extra speed. Let the configuration tree handle the variety, make it store floats, ints, bools, strings and vValues.
Or, alternatively, I'd develop a good scripting language from it. Which is NIH syndrome.
About the DCT: that sounds like script to me, too

In the scripting languages I know, objects are essentially maps from symbols to other objects (a tree), and some objects are values (the tree nodes). So again, it may just be that the script will give us a DCT implementation essentially for free. Even with prototypes: you could say "create some new game settings here, for use only for this one cycle there. Change only the speed, this should be the snail cycle.". And cross-references.
Persistence, BTW, is nontrivial even with the best tools. That is because of the various relationships objects can have to each other. Especially, they don't form a tree. And they form relationships with objects that are not persisted. You have to make sure that "Player 1" from the savegame is the same "Player 1" that was already created by the menu system.
* because, say, the expression needs to be downloaded to the client and we can't allow it for our script choice, or because scripting is optional and we want that flexibility anyway. Neither of which is set in stone. Ruby and Io seem to support safe downloads, and Io and Lua would be small enough to be distributed with the game and thus be mandatory.