The state is attached to class definitions, which as far as I know is are immutable. Do you suppose class definitions should be re-loaded every time someone instantiates a class? The cache simply attaches extra meta-model information to class definitions. State is bad (mostly) only when it's mutable. Your argument sounds to me like "I am not sure we should keep class definitions in memory between different class instantiations"... it just doesn't make sense to me.