nixos modules have an order

sure, modules have a fixed point and are recursive and can rely on values set before or after,

but the modules array in a nixos configuration starts at the top and goes down

if a module has an imports, all imports are ran then it continues

and nix is lazy, but only sort of. it will rerun things over and over again depending on the context.