You might be thinking of valid yet non-standard transactions. From the point of view of the node software:
Standardness is what type of transactions should be included.
Validity is what type of transactions could be included.
If a node sees a prospective transaction as non-standard it will not share it on the P2P network and will not include it in candidate blocks for mining, even if it is valid. However, if it sees non-standard yet valid transaction has been confirmed on the chain, it will accept it.
Bitcoin Core and and Bitcoin Knots have a slightly different point of view (policy) on standardness, but agree on validity. If nodes were to disagree on validity, there would likely be a fork.
…how will it be backwards compatible?
It might be worth looking at OP_CHECKSIGADD for an example opcode only used in Tapscript.
case OP_CHECKSIGADD:
{
// OP_CHECKSIGADD is only available in Tapscript
if (sigversion == SigVersion::BASE || sigversion == SigVersion::WITNESS_V0) return set_error(serror, SCRIPT_ERR_BAD_OPCODE);
But if it is a policy, op_cat can appear today with a help of a miner?
No, the script would be invalid. Such a transaction, and its block, would be rejected as invalid by all nodes running a Bitcoin Core version, or derivation, released since OP_CAT was removed (i.e. ~all of them).











