Why are only specific transaction types accepted into the mempool? In the Bitcoin Mainnet, only specific transaction types are accepted:


  Bitcoin uses a scripting language to specify (and satisfy) the encumbrances, thereby allowing a whole host of transaction types. Although many transaction types can be represented in the scripting language, only a limited number of standard transaction types are actually accepted by the network and the miners. (source)


What is the point of equipping Bitcoin with a scripting language, while only accepting a pre-defined set of transaction types? What harm could be caused to the network by accepting valid transactions with an arbitrary locking script?
Any script can be used in P2SH/P2WSH technique. Using arbitrary scripts in transaction outputs cause grows of UTXO database and other problems.