If the functions depend on each other, they are executed in-order.
I checked with some audio buffers (delay-reverb-modulation-compression, where the delay must execute before the reverb and the compression must execute last otherwise you get different results).
So I wonder where the original question came from? As far as I can see the execution is always in-order.
Looks like there is no issue at all. There can only be an issue if the functions run in different threads, but that should also be an issue with Delphi. In my code - as threads - delay will return almost always first from a thread since it is the shortest, simplest code, wherever I put it in the effects chain.
But you did not mention threads.
Like PascalDragon I am curious what exactly is your problem?
So it may be marked as solved, but I am intrigued by your issue, so please expand a little further.
Maybe just a matter of using QueueAsyncCall? That also guarantees that the compiler executes the functions in-order, sequentially.