This is cached in Render, and gets cleared along with render pass GPU textures when there is no editor open using it, or a new final render is started. The context and texture pool are cached. But the evaluator is re-created every time as this only runs on compositing node changes, which require recreating it anyway (unlike the viewport where e.g. camera navigation does not need a new evaluator). Pull Request: https://projects.blender.org/blender/blender/pulls/108909