Why were custom scripts made non-standard except if they're P2SH? Custom script = nonstandard
P2SH custom script = standard
Why don't  we set non-p2sh custom scripts standard too? Forcing P2SH requires adding hashes to the chain causing more bloating
To answer your question exactly: why were they made non-standard? Because originally (after a few vulnerabilities in the Script logic in 2010), all scripts were made non-standard except a few whitelisted ones. Since then, more and more groups of scripts have been added to that category (including almost all P2SH scripts, with a few exceptions).
Why have bare scripts (non-P2SH,non-segwit) not been made non-standard except for P2PK, P2PKH, and multisig up to 3 keys?
UTXO bloat.
Yes, P2SH implies slightly more blockchain space usage. But not using P2SH for potentially long scripts means those scripts have to enter the UTXO set, where they burden full nodes until spent. With P2SH, only the script hash enters the UTXO set.
In addition, there just isn't much use for non-P2SH scripts as there are no standardized way of sending to them. The ones that are permitted are due to historical usage.