The subscribers and publishers are scoped, so letting them go out of scope is the appropriate way to shut them down and close connections.
I've seen these messages as well, and my guess is that we're not blocking on shutdown correctly so that OpenSplice can guarantee that the other side knows the connection should be terminated. It doesn't always happen, I think because it fires off a message to let the other side know, but this can fail if the program terminates before that message is sent or if that message is not delivered the program no longer exists to resend it.
By comparison shutting down a Connext backed ROS 2 application takes much longer and I think this is what it is doing behind the scenes. Though I'd need to dig into it more to be sure.