Openfire appears to be terminating sessions that are not expected to be terminated. The associated client receives an unavailable session from its own full JID. This leads the client to believe that it's disconnected.
Problems seem to have started with the introduction of Stream Management (
OF-446) and appears to affect clients that support that feature only (Conversations, Dino).