Why can't we cache everything?  Is it a correctness problem (implying that sometimes we have different non-null objects for the same objectid) or just trying to keep the cache size down to minimize lookup times?