Generally i like the idea, but requested some changes/clarification.
Is this a fix for a different problem? I don't see how it's related to the enum items propagation below. Why is it here?
This flag is currently used to avoid unnecessary updates when the node hasn't actually changed. A node tree update can happen for any number of reasons, and if the enum items haven't been changed it should not cause ripple effects by propagating "new" enum definitions. I don't see an equivalent check in the new code. Should be possible to include this after the is_enum_source
condition?
I think the easiest way to fix this would be to decrement the user count at the end in the create_runtime_enum_items
case:
diff --git a/source/blender/blenkernel/intern/node_tree_upda…
Yeah, can be made to work, but i really don't want to spend more time on this PR.