GROOVY-8604, GROOVY-8630, et al. added PARAMETERIZED_TYPE_CACHE to GenericsUtils. This type cache is static and final with no outside interface for clearing it save the soft references. Long-lived processes (like an IDE) can run into stale class data as the type being compiled are continuously being edited/altered. And different branches may be brought in from source control. I don't think it is good practice for the runtime to cache anything in static data structures.
It's difficult to judge the usefulness of this cache since the linked JIRA tickets and commits do not mention before and after measurements. But if it is indeed beneficial, could its reference be kept somewhere non-static and passed/accessed by GenericsUtils?