BIP-16 (Pay to Script Hash) was the first time complexity was added into the simple
FORTH like Bitcoin script system. Before BIP16 you'd just read each "command" from left to right and execute them using a stack. After BIP16 you first have to analyze the output-script to see if it matches the predefined
patterns which will then tell you if you need to take "extra steps" before doing what you were doing before.
Today more complexity is added, for example if the output-script matches the
OP_N <data> pattern, the code has to execute the
branch related to SegWit where some OP codes like OP_CHECKSIG are acting differently.