But, please,
PLEASE answer my question in
post #12. It's much more urgent to me than this discussion about transaction replacement.
As far as I can tell, you're correct. The terminology for transactions you call "OK" and "Not OK" is "final" and "non-final." One wrinkle is that there was some divergent behaviour in the testnet, where non-final transactions (nLockTime in future & sequence number < UINT_MAX) were being accepted but
not replaced. This
was fixed just a few days ago.
In any case: there is
no code in Bitcoin Core to replace transactions based on sequence number, and mainnet nodes
don't accept non-final transactions into the mempool.
Oh yeah, and a non-final transaction can't be included in a block until it turns final. It makes the block invalid, which will fork anyone who accepts it off the blockchain.