For messages such as TradingSessionListRequest (35=BI) and also more generally:
IF a request ID has been sent (335=123456)
WHEN the session logs out/in and resets sequence number
SHOULD the request ID also be cleared out and therefore re-usable
OR should sending the same request ID result in a reject?
The previously sent TradSesReqID(335) is hence required to be sent a second time to end such a subscription (it needs to be unique per subscription and not unique in general). I do not see a reason to automatically end all subscriptions when a session gets disconnected since this ID is on the application level. Once the connection is back up, the application can continue to honor the subscription until it is disabled.
However, it is not recommended to re-use the same request ID for a different subscription. If the “subscription” is actually just a snapshot, then TradSesReqID(335) acts just like any other request message identifier that should not be re-used for another request. This minimizes the potential for confusion on the side of the recipient of the request.