Are you using the latest version, .26? If not, I'd recommend upgrading, it fixed a bug with sockets staying open on some setups, which I think is the problem you're seeing. The driver doesn't actually support persistent connections yet (although I'm hoping to add that to the next version).
By the way, there is a DESTROY (see the last method in xs/Connection.xs).
check_connection immediately returns if you're connected, it only tries to reconnect if the last time it tried to connect to the database is unsuccessful (e.g., the database crashed, the network was down, etc). You can suppress this behavior by passing auto_reconnect => 0 to the constructor, but I doubt that's what you want.