When introducing wtxidrelay we added checks to skip attempts to announce txs with the wrong hash (https://github.com/bitcoin/bitcoin/pull/18044#discussion_r403953004), but didn't similarly ignore MSG_WITNESS_TX entries in announcements, which have never been valid (see BIP-144).
This PR corrects that oversight, skipping such announcements. It also moves the check to be after the disconnect code, so that attempting to announce txs on fRelay=false doesn't get treated as okay just because you're doing it wrong. As a result this allows deduping the seen_tx_hashes set.