Nope; in fact, I thought that might be the problem, so I spent some time to make sure that I was (a) only loading a given core once, and (b) that all of my setup/teardown was threadsafe.
So it's just one DirectSolrConnection for the lifetime of the application, and it only gets closed when the JVM exits.