I wonder if these problems have been successfully addressed somewhere.
I've built a few data flow systems in the past (my dissertation work [2] was based on one), but I decided to tolerate rather than avoid glitches early on because I found that way to be more resilient. Flapjax [3] avoids glitching via a topological sort, which I rather see as an optimization (to reduce unnecessary work) rather than as a correctness issue.
[1] http://research.microsoft.com/apps/pubs/default.aspx?id=2265...
[2] http://research.microsoft.com/pubs/179366/mcdirmid06superglu...
[3] http://cs.brown.edu/~sk/Publications/Papers/Published/mgbcgb...
Computing the dependency graph dynamically obviously leads to a lot more flexibility. I'm not really sure what you mean by "reactively" here: if you mean does it reactively update computations as state (and even code, if you want to get Bret Victor about it) changes, then ya.
Data flow by itself isn't necessarily reactive; actually the way it was originally defined to work very lazy push things through. Continuous interpretations where changes were propagated non-lazily didn't come until much later.
[0] https://leanpub.com/dataflowbook