Looks reasonable. For pooled statements the Statement.close call will pull them back into the pool, but I think that's OK. (If the client code is still using those statements it could lead to unexpected results, but unpooled code would fail in that case anyway.)
I can poke around a little more, but it'll be the end of this week at best.
