I am working with spring websocket, but with a true broker. It with ActiveMQ.
Through my custom ChannelInterceptorAdapter. I have confirmed that the STOMP disconnect event is triggered twice when I close the connection manually from the client (Web Browser). (Apart: some times, very rarely, for the other two events Connect and Connected this same behavior happens, again very rarely)
According with the replies of Sergy and Rossen it is normal or is expected in someway. It without matter if is handled that event through either ChannelInterceptorAdapter or SessionDisconnectEvent.
Consider in add a special note about this behaviour in the current reference documentation.
Perhaps in the 4.4.14. Events and Interception section. Where these classes appears together.