The algorithm doesn't infer anything from the wire previous choking state. On each `onrechoke`, every peer begin as [should-be-choked](https://github.com/mafintosh/torrent-stream/blob/rechoke/index.js#L497), then the ones would should not be choked are marked [should-not-be-choked](https://github.com/mafintosh/torrent-stream/blob/rechoke/index.js#L507), finally if the peer *should-be-choked* state is not the same as the effective choking state, the change is [applied](https://github.com/mafintosh/torrent-stream/blob/rechoke/index.js#L523) to the wire.

IMOH, the correct behavior is to keep the peer choked until we have a good reason to unchoke it.