Say there is a soft-fork. A is the chain that implements it, B is the chain that has a transaction that's valid pre-soft-fork, but invalid post-soft-fork, so it's following the old rules. We know that A and B can merge if A gets longer since all of A's tx's are compatible with B's, but not vice-versa.
Anyway, in this situation, it's very possible that users are subject to replay attacks. If you spend on A, the same tx can be replayed on B. In order to prevent this scenario, there surely would have to be some sort of replay attack prevention.
My question: Is a replay-attack-proof soft fork possible? If so, what would be the mechanism to do it from a technical perspective?