I would agree for the most part but I found C3 to be a significant simplification over Zig. I struggled very hard with Zig but found C3 to be much more straightforward.
Syntax wise it's different but philosophically it is quite similar to Go's strive for simplicity, but less extreme, much lower level and more C like syntax.
Yes the temp allocator will remove things at the end of it's scope. It makes it very clear when memory will be affected and gives predictable code execution.
There are other contexts for managing mutex locks so they auto close and you could dream up one for database connections and transactions too.
The nice things about a context is you can always see it's there, destructors by design are a bit hidden which can make code harder to reason about.
I have found C3 to be a generally simpler experience than Zig, it's fun to use while being low level. The general approach is aiming to be easy to use, personally I often compare it to Go philosophically but with more similar use cases to C and lower level.
Syntax wise it's different but philosophically it is quite similar to Go's strive for simplicity, but less extreme, much lower level and more C like syntax.