The Zig compiler is finite and deterministic, yes, but that's not the problem.
The problem is that user code is not finite nor deterministic.
Even worse, Zig's compiler may be deterministic and finite, but the language is not, by far. In fact, the language is one of the most infinite languages in existence because just the type system is uncomputable! [1]
(In this context, the word "undecidable" used by that source means "uncomputable".)
If the type system is uncomputable, then the type system will never be able to resolve all uses of function pointers everywhere.
The whole point of the Halting Problem is that you could have a finite and deterministic Turing Machine that runs other Turing Machines, and that finite and deterministic Turing Machine could run into situation where it never halts.
I never say this when people ask (because most people don't understand), but the real reason I don't like Zig is because of how infinite the language is, starting with its uncomputable type system.
This makes Zig one of the most unreasonable [2] programming languages in existence.
If you don't believe me, ask the Zig team how they plan to solve this problem. Don't ask them if they plan to solve it; ask them how.
Then if they reply, email me [3] with their proposed solution, and I will destroy it. I will do that no matter how many solutions they come up with because math says I will always win.
But if they say they can't, will you believe them?
[1]: https://3fx.ch/typing-is-hard.html#zig
[2]: https://fsharpforfunandprofit.com/posts/is-your-language-unr...