Habe das Problem herausgefunden... Toni hatte einen guten Vorschlag (aber das Abmelden des Fahrers bedeutete, dass der Fahrer beim Neuladen der App nicht mehr verfügbar war!).
In unserem Fall haben wir versehentlich ojdbc6.jar in unsere Web-App UND in das Tomcat/lib-Verzeichnis aufgenommen. Dies führte zwangsläufig dazu, dass Tomcat unseren Classloader zum Erstellen von Objekten verwendete. Als unsere Anwendung entladen wurde, hatte der DBCP-Pool von Tomcat also immer noch offene Handles für Klassen in unserer Anwendung.
Das Entfernen von ojdbc6.jar aus unserer WEB-INF/lib löste das Problem.