In order to validate the block, any node needs to compute the hash of the block and that means you need to download the whole block and compute the hash
That can't be avoided by any node that wishes to validate blocks
After validating a block, you're right that the OP_RETURNs don't need to be stored any more, and you could therefore delete or overwrite that particular data
But, if you want to keep the whole transaction history, in order to be able to see everything, then your options are limited. I guess you can write node software which, after validating the block, will overwrite or delete some data (e.g. OP_RETURNs) that you don't want to keep around
But the more you delete, the more difficult it is to call yourself a full node. For example, you can't help other nodes to join the network