I don't know all the implications of `openStatement` and `closeStatement`,  but I do know that some use cases don't really fit the `withStatement` mould;   an example (by analogy) being connection caching in a webapp,  which seems rather incompatible with pretty much any type of connection lifetime guarantee.

So personally I think the use of `with` style combinators is well worth encouraging,   it probably shouldn't be the only way to get access to the underlying functionality.