To clarify: if G on the left and G on the right are not the same score, then it’s not recursive and there’s no need to iterate.
Unless you do something like you mention previously, where G(a)-> G(b)-> G(c)-> G(a) (G(a) means the grapevine score in the context of a, and the arrow means the score for one context is calculated using score corresponding to a different context as weights), in which case it is recursive in a multi-step fashion. There might be instances where we do that, or we might decide it’s not worth the energy expenditure, so we avoid it.