You don't pay for passing arrays around in Go or Zig either, as the length is part of the type and not stored in memory.
A slice however stores the length, naturally since it is potentially shorter than the array it is making a slice from. That extra cost is absolutely minimal. Such a space increase is entirely dwarfed by other choices such as standard int being 64-bit rather than 32-bit. This is a strange thing to focus on.
It is a far more serious problem how C++ potentially cause code to run upon variable declaration, assignments and argument passing. That breaks the principle about transparency about what your code does, which I deem important in C.
The idea of starting with C and tweaking it is a very good idea. C is a widely used language with lots of libraries. A lot of languages fail because they are not compatible with anything that already exists. Writing a systems programming language which does not interface well with C has a lot of downsides. Zig benefits from making it very easy to reuse your existing C code and interface with it.
In most cases, interfacing with C from other languages requires extensive wrapping to make the use of C fit with the paradigms of that language. Zig in contrast fits nicely with existing C libraries.
C++ is the worst way of starting with C and tweaking it. C++ allows you to mix C++ code with C code, while not being 100% compatible. That is the worst possible solution IMHO. It forces C++ to maintain backwards compatibility at syntax level with a very old language. Zig at least is only mimicing C-like behavior in its ABI interface and memory allocation and usse. The syntax is not C-compatible.
D is more of a C++ rethought than Rust, and that never ended up well. The only use of C++ in my opinion is as a warning to language designers of how you can paint yourself into a corner.
I think Objective-C was such a much better take on extending C than C++ ever was. Objective-C allowed Swift to be made while retaining binary compatiblity with Objective-C. Nobody has managed to make solid binary compatibility with C++. The design of C++ made sure it would always be the most hideously complex language to interface with.