I found that some error prone cases are harder to express with defer in zig.
For example if I have a ffi function that transfers the ownership of some allocator in the middle of the function.