Defer is more general than using, you can use it for other use cases, for logging
logger.log("start")
defer logger.log("exit")
...
for keeping alive a reference (because you need to call C code) global.keepalive = myvar
defer global.keepalive = undefined
...
// call C code here
etc