I'm having trouble understanding how some soft-forks did not cause a chain split.
Increasing the block size is a hard-fork. That seems obvious: if old nodes dont accept larger blocks, they would not agree with nodes running software accepting large blocks. The large blocks would be refused by old nodes, creating a blockchain split.
However I remember reading that decreasing the block size would be a soft-fork. Huh? The same kind of disagreement between nodes running the old and new software should happen again right? Is it because all miners would signal their approval for smaller blocks first, then mine smaller blocks from then on? So that old nodes would only ever see blocks smaller than their higher, older limit? Do such soft-forks always require miner cooperation first?
Segwit moved some transaction data in a new Witness spot. How do old nodes which do not run SegWit agree with the ones that do? They are not aware of the Witness part, how/why do they accept the same transactions as valid without that data?
More recently I read very interesting proposals for soft-forks enabling covenants such as CTV. This would enable new spending conditions for UTXOs, thanks to a new OP_CODE to Bitcoin Script. This could notably allow multiple people to own different parts of a single UTXO from what I understood, which would solve the usual complaint that "onboarding billions of people on L2 with one UTXO per person takes too long/too costly".
Again: how is this a soft-fork? Old nodes could accept a transaction which does not meet the new conditions from the new OP_CODE, which would lead to a chain split. Maybe the miners only relay valid CTV transactions, and the nodes ignore the unknown new OP_CODE so they think it's valid?
Thanks a lot for your help!