Just a thought from someone who knows nothing more than the contents of this thread about the issue.
Would it make sense to only cache classes within a jar? i.e. empty the cache when moving on to scan the next jar? Possibly one might get enough performance benefit from intra-jar class hierarchies to not have to pay to have every class in memory for every jar. Dale