During geometry nodes evaluation some sockets can be determined to be unused, for example based on the condition input in a switch node. Once a socket is determined to be unused, that information has to be propagated backwards through the tree to free any memory that may have been reserved for those sockets already. This is happening before this commit already, but in a less ideal way. Determining that sockets are unused early is good because it helps with memory reuse and avoids copy-on-write copies caused by shared data. Now, nodes that are scheduled because an output became unused have priority over nodes scheduled for other reasons.