BGPSession down can be cleared and then re-notified even though the device have been down.
SMARTS - 10.1.x
When the Endpoint's PeerState changes into a status that is either not currently monitored such as SNMPError, it would clear the endpoints event. This in turn would affect the BGPSession down event to clear and when the State is back to the Alarm status, it would re-notify the session down event and thus making it look like a session flapping event.
To verify the issue, one can subscribe to the endpoint instrumentation using below command:
./sm_adapter -s <BGP_Domain> --subscribeProp=BGPSession::.*
NOTE: Juniper device also have a juniBgpPeerState attribute. Collect instrumentation for juniBgpPeerState as well.