I think that's correct, let's discuss it tonight if my explanation doesn't make sense.  The "visible" tests are only for value overflow objects, because values can be removed from the tree if they're invisible.  Key can never be removed because they're part of the name-space, so they are always cached (well, instantiated, but that's the "key" version of caching).