there was op_return
but this too was not used as a data exploit in 2009-2014
https://bitcoin.org/en/release/v0.9.0#rebranding-to-bitcoin-core
back then core pretended to be against wanting bitcoin to be used as a junk data exploit, yet, stupidly opened the exploit to allow 40byte(later 80) and then others opcodes were added(pushdata) that allowed 520, then others allowing uto 4mb using a different opcode. and other(opsuccess) aded more recently to make it now have hundreds of opcodes that can be abused
it has never "always been possible"
it has only been possible since core jumped in and changed things
Before OP_RETURN exist, people exploit Bitcoin address to store arbitrary data which bloat UTXO.
Less quantity of arbitrary data is better than nothing. And IMO not adding 10000 bytes limit on Taproot script is a mistake, when such limit exist on different kind of script.