2 & 3) blocks don’t need to be full for Bitcoin to function as intended. So any additional storage used for non-monetary purposes is simply a burden on the network. Storage optimization should be the obvious default.
UTXO bloat is different, and it impacts the network in two concrete ways. First, it increases the amount of RAM a fully validating node must keep available, since the UTXO set has to live in memory for efficient validation. Second, it lengthens the time required to complete an IBD, because every historical transaction must still be validated against that expanding state.
Personally, I think blocks should be smaller, but that’s beside the point here. Block size is a physical constraint, not an optimization mechanism. It limits throughput, it doesn’t decide what should occupy that space.
Even with smaller blocks, you can still end up with blocks packed full of spam. That pushes monetary transactions into the backlog and raises the cost of getting them confirmed. The constraint alone doesn’t guarantee the space is used for the purpose Bitcoin was built for. It only guarantees that competition for that space becomes more expensive. As we’ve seen, fees don’t outprice spam.
