pull down to refresh
If you are referring to the complexity of miniscript, I would say that it hasn't really been "added" to bitcoin. Bitcoin scripting (the rules we use to set up how our coins can be spent) is notoriously difficult to reason about (thank you Satoshi). Miniscript is set of well-understood "chunks" of bitcoin script that can be used to do more complicated things like the decaying multisig wallet described by Nunchuk. So, Miniscript is an attempt to mitigate the risks of doing complicated things with bitcoin script...but the complicated things can be done whether you use miniscript or not.
The last time new script things were added to Bitcoin was Taproot (2021). Even before that, people could do many complicated things with Bitcoin script. For example, Lightning channel commitments are a somewhat complicated way of using Bitcoin script that involve timelocks.
OP_IF has been one of the op-codes used in Bitcoin script since the very beginning (I'm pretty sure). BIP 110 doesn't ban OP_IF entirely, only in Taproot scripts. Nonetheless, I don't think it is a case of complexity being "added" to bitcoin, so much as BIP 110 proposing that complexity be removed from bitcoin.
is notoriously difficult to reason about (thank you Satoshi)
Note that it is difficult to reason because it is a stack-based minimalistic language. It has definitely some shortcomings, also because we wanted soft and not hard forks (I think it is safe to claim that all the <xyz>VERIFY patterns replacing OP_NOP* in script extensions is caused by that, but happy to be proven wrong about that.)
OP_IF has been one of the op-codes used in Bitcoin script since the very beginning
Real world usage came when Peter Todd proposed CLTV. It's basically what enables the L in HTLC for lightning too (though we use CSV for that - relative locktime): the lock is conditional (and the way we often express conditions in programming is with if).
Why add all this complexity for a few edge cases. Has customers demanded this?