in reply to Disconnecting from a Database

The 'disconnect' method is a little abstract. It might not even disconnect at all, in the literal sense, as the documentation seems to imply that it "sets Active to Off". This implies that it is more like a "commit" than "disconnect".

Also from the DBI documentation is some details on how the disconnect call can vary from platform to platform:
The transaction behavior of the "disconnect" method is, sadly, undefined. Some database systems (such as Oracle and Ingres) will automatically commit any outstanding changes, but others (such as Informix) will rollback any outstanding changes.
So, this behavior may be an artifact of DBD::mysql more than anything else. Testing with PostgreSQL, or Oracle may shed some light on this.