I really, really do not like what that could do to the readability of code if it was used liberally. It's like GOTOs, but worse, because it's not as visible. C++'s destructors feel like a better/more explicit way to handle these sorts of problems.
C++ destructors are great for this, but are not possible in C. Destructors require an object model that C does not have.