Theory and practice diverge here.
A miner can put as many transactions as they like in a block with no fees.
The cost is then replicated across every full node which must store it in perpetuity.
And the rest of the miners are free to ignore a block like that. You have yet to convince me there's a problem. Miners can fill blocks with worthless free transactions today.
Then maybe the problem isn't a large maximum blocksize, but the allowance of unlimited feeless transactions. They are not free for the network to store in perpetuity, so why not eliminate them?
Eliminate free transactions and eliminate the maximum blocksize. Problem solved forever.
I'll let Satoshi speak to that:
Free transactions are nice and we can keep it that way if people dont abuse them.
Lets not break what needn't be broken in order to facilitate micropayments (the reason for this proposal in the first place, yes?)