Those are issues I specifically address. It is hard to take an existing C code base and continue extending it in Java or Python. E.g. OpenSSL is libary is used all over the industry and written in C. Tacking on some Ruby code because you think that is cool will not work.
However Zig very much can be used for this puprose as it interfaces seamlessly with C. It is binary compatible and has the same memory model.
Thus Zig gives people who maintain larger C codebases a choice to move to a more modern language without doing a complete rewrite of all their code.
This is similar to how say e.g. Swift was able to "replace" Objective-C. Due to seamless interaction you could take an Objective-C code base and simply continue extending the code with Swift code instead of Objective-C code. You could also make surgical strikes and replace whatever other code you wanted to upgrade.
This is what I mean by replacement. That somebody who works on C projects today, is able to use the language without incuring major friction. OpenSSL e.g. could be partially migrated to Zig, and users of OpenSSL would not notice any difference.
Try migrating OpenSSL to Java, and there will the major reprecursions for anybody using the library.
In practice we will see. The primary reason C is around isn't because it is so amazing, but because any switch requires the alternatives to be sufficiently better and with a low threshold for people to make the switch.
My main concern about Zig is that it may end up being slighly too complex for people to pick up. It is simpler than C++ and Rust, but still nothing like e.g. Go, which got quite successful thanks to its simplicity and strong engineering.