This might be introduced by my work on / et al, which are as of yet unmerged, and have never been part of a release. I've not verified this bug on an actual released version of Openfire.
When a cluster node (that had a client connection) leaves the cluster, the cluster-wide state of the affect clients should (but is not) updated.
There are two issues:
org.jivesoftware.openfire.SessionManager#sessionInfoCache entries are not cleaned up.
unavailable presence is not sent on behalf of the now unavailable client connections.