And what about having nodes build in some sorts of max block size relay delay, so they can punish miners that in their eyes produce too large blocks?
That's very similar to what I proposed earlier, except the relay delay would be infinity.
Yes I know, but I guess that could bring you in a situation that you won't be aware of any blocks in the blockchain because nodes around you won't relay you the blocks.