In the following code, it is possible to detect that f and g need to be evaluated before h, and the functions are assumed to be friendly to such eager, out-of-order evaluation (pure and referentially transparent):
@dds_function("/f")
def f(): pass
@dds_function("/g")
def g(): pass
# to eval:
def h(): return f() + g()
Thus it should be possible to execute them out of order.