* OP_CODESEPARATOR in non-BIP 143 scripts fails the script validation.
This includes OP_CODESEPARATORs in unexecuted branches of if statements,
similar to other disabled opcodes, but unlike OP_RETURN.
OP_CODESEPARATOR is the only mechanism available that allows users to sign which particular branch they are authorizing for within scripts that have multiple possible conditions that reuse the same public key. Because of P2SH you cannot know that no one is currently using this feature. Activating a soft-fork as describe above means these sorts of funds would be permanently lost. It is not acceptable to risk people's money like this.
I suggest an alternative whereby the execution of OP_CODESEPARATOR increases the transactions weight suitably as to temper the vulnerability caused by it. Alternatively there could be some sort of limit (maybe 1) on the maximum number of OP_CODESEPARATORs allowed to be executed per script, but that would require an argument as to why exceeding that limit isn't reasonable.
--
Russell O'Connor