Thanks for working on this!
Regarding automatic vs. manual caching, I think it’s better to implement this transparently as Jacques mentioned. The most common need for caching I’ve seen is to avoid re-computation when something changes in the node tree. We shouldn’t need many user visible options to make that work. It’s interesting to see all the UI controls in the prototype, but I think they would end up being more confusing than helpful. IMO a benefit of Blender’s node design is its use simple UI concepts; spreading caching controls everywhere complicates that. A node overlay could provide debug information about what is cached, but maybe even that isn’t necessary for users.
When users need more control over what is cached, where it’s stored, and for how long, it would be better to concentrate those controls in a single place, along the lines of the designs in this thread above and the “checkpoint” designs that have been around for a while.
Also, it probably makes sense to implement automatic caching before manual caching, since it places less burden on the UX, and leaves us with only the places that the complication of a more manual approach is actually necessary.