another rule bitcoin consensus can have to mitigate the spam/empty blocking
have blocks rejected if they only contain under 1000tx
that would suddenly inspire pools to fill blocks with more transactions
The problem I see with that is that not only would you get rid of spam, you would also invalidate the mining of empty blocks whose hash is discovered a few milliseconds after the previous one.
and the answer in the form of a rhetorical question. should block get solved in milliseconds or in an average 2016block/fortnight(~10min)
whereby less blocks in milliseconds stops affecting the difficulty negatively(raising diff to make it harder(shooting self in foot))