Basically it solves the problem a different way than you think. Instead of allowing you to control order, it removes the possibility of order mattering at the system level.
Nix and Guix use special file structures to make sure everything is isolated so no build can affect another, unless there is a depedency, in which case one will be built before the other.
It is this powerful isolated file structure that allows NixOS and GuixSD to deliver on the promise of deterministic system set up in a way Puppet and Chef will never be able to. It works incredibly well.
Sometimes you actually need or want something to be done before something else, though. I'm wondering how Guix deals with that, or if it's capable of dealing with that.
I've been bitten many times by Puppet's default lack of order in its declarative manifests. What was vaunted to be an advantage turned out to be a curse when you actually do want/need them to be in order.
I hope Guix does a better job at this than Puppet.