found a bug - formulas chained in reverse reading order require multiple passes to resolve. It seems that function call chaining is the sanest solution, although it could be brute forced by adding an outer loop * total number of cells...