Programming languages has been one of my major subjects at the university and I don't see anything new in Zig regarding memory allocation.
The only thing that's new is the convention to actually handle out of memory correctly, and the convention to accept an allocator as a parameter rather than using a global allocator.