The consumer should pass in a bunch of nested closeables in reverse order. Closing the innermost closeable should close all outer ones. Closing the outer ones again shouldn't have any bad effects and would make the API more robust to consumers passing closeables in the wrong order, or passing closeables that aren't nested.

I'll remove the return.