They're suggesting that the bugs are endemic to using Zig and couldn't be prevented by a modified coding style. Then they point out that the well known way to avoid the issue (defer) is "not ergonomic" (really one extra line is that bad?) It seems like a lot of misinformation couched in a reasonable sounding tone, which is par for the course for how these labs operate.
I don’t think the basic idea that Zig is less safe than a language like Rust (and therefore has different classes of “endemic” bugs) is controversial among Zig programmers.
The points they make around explicit defers are a lot more subtle than it being too many lines. Quoting:
> For Zig code, when exactly should we be running the cleanup code? If we're passing the same *T to many different functions, how do we know when it's no longer accessible and can be cleaned up? How does it work when some functions need to continue to reference the memory after the function is called?