OP_RETURN goes to scriptPubKey. instead of sending it to an spendable script or address type like OP_1, OP_2 etc.
everywhere you can put data can be a data storage. for example i can store data in my browser history just by using page titles. does it make sense? no. but i can do it. best way to block data storage is wait for it. wait for a method to show up. then bam patch it. don't let it get big, or mainstream. kill it on the spot. this is what bitcoin core has been doing until 2 years ago. after taproot nothing got patched. and now they are removing older patches.
as i said input spending an output, just gives a pointer to it. and if that output not spent yet, you can spend it. based on implementation, it can also just be a boolean on the output.
if you are a miner and you wanna prune older blocks and just keep a list of UTXOs, you can also prune spendable outputs. like OP_FALSE OP_IF that stores data. because you know it can't be spent, so no point to store it. BUT somebody has to store it.
the whole point of a blockchain is proving something happened globally, with timestamp and order. its not designed to store blob data, and its not best at storing blob data. normally you would store the blob data somewhere else, like blossom, then take the hash and put it on the blockchain. and now you can verify it. you timestamped it.
you wouldn't use blockchain itself as blob storage in any other context. because it doesn't make sense. you would store it on a. blob storage, and put the hash on the blockchain to prove it, log it.
but now since THEY CAN store it on the blockchain, and forget about it, they are just doing that.
if a data is lost you can't rebuild the blockchain. block hash changes. somebody has to store the full blockchain.
whole point of bitcoin is decentralization, and if you make running a node harder, then you make the network less decentralized.
that's what makes bitcoin special, its the biggest, yet i can run it on my laptop.
in an ideal world most of the people would run their own node.
but nobody works to make running a node easier for normal people. im talking in terms of software, and the way blockchain stored. nobody trying to think "how can we make this consume less storage so more people can run it".
instead they keep adding more stuff to it. make it little by little harder to run. if you ran a node recently, you might have noticed it takes longer to sync blocks from the last two years. its nuts.
---
i kinda vent here but you can also watch mechanics videos on youtube, instead of listening random people like me. before asking questions to random people who might not be well informed, i suggest you watch mechanic first.
https://youtube.com/@bitcoinmechanic/videos