Incidentally, this style of coding (loop free) is also what Simulink (in discrete stepping mode) enforces. Algebraic loops are not possible, period; you have to insert a one-step delay. A side effect is that step time is much more predictable (I have not found this advantage being mentioned in the article).
https://news.ycombinator.com/item?id=12120752
https://news.ycombinator.com/item?id=8374345