Why does Bitcoin have a complicated scripting system? https://en.bitcoin.it/wiki/Script https://github.com/bitcoin/bitcoin/blob/master/src/script.cpp
I guess because it makes fancy contracts possible: https://en.bitcoin.it/wiki/Contracts Could even be kinds of contracts that we would never think about today.
Still, from what I understand currently there are only a handful of scripts in popular use.
Would it not be wise to restrict the scripting engine to a limited number of well understood scripts? It seems like an invitation for trouble. New scripts could be added over time.