"For the notion of causality to make sense we need to constrain the class of graphs that can be used in a causal model. Obviously, it’d make no sense to have loops in the graph:
We can’t have X causing Y causing Z causing X! At least, not without a time machine. Because of this we constrain the graph to be a directed acyclic graph, meaning a (directed) graph which has no loops in it."
Of course you can have loops, no need for time machine:
The examples you have posted do not contradict what the author is saying. A feedback cycle is something like: a quantity A at time t1 given by A(t1) influences another quantity B(t2) which in turn influences A(t3). Here t3 > t2 > t1.
We would run into causality issues if t3 = t1, but that doesn’t happen.
We can’t have X causing Y causing Z causing X! At least, not without a time machine. Because of this we constrain the graph to be a directed acyclic graph, meaning a (directed) graph which has no loops in it."
Of course you can have loops, no need for time machine:
https://en.wikipedia.org/wiki/Virtuous_circle_and_vicious_ci...
https://en.wikipedia.org/wiki/Causal_loop_diagram
https://en.wikipedia.org/wiki/Positive_feedback