What do you guys think about the idea of chaining operations that leverage common calculations. Say, for example, that you had 2 algorithms that required shortest paths to be calculated before continuing, if you run them both from scratch, they both calculate shortest paths first, then thier own calculations. So shortest paths gets computed twice (and that is an expensive calculation!). So what if you could either chain operations, or hold on to the intermediate calculation until the graph structure actually changed ("dirty bit").
Also, what algorithms are similar enough to one another that we could avoid duplicate work by performing them simultaneously?