The problem with delaying blocks is the following. As a simple user, you may feel personal satisfaction by not relaying the block and it may not affect you in any other way. But as a miner, you are in a difficult situation when you receive a block that you dont "like".
For as long as you plan to dislike it, you cannot mine on top of it - because your potential next block would be waste without the "evil" block. It is chained to it and eventually you will have to publish the "evil" block along with your own next block. To make things worse, your chances of success are higher when you relay the "evil" block as soon as possible. Otherwise you not only depend on your own luck (difficult enough), but also on the luck of the "evil" block (which you have tried to diminish).
Therefore, if you dont like the block, you must not mine on top of it.
Refusing to relay a valid transaction is different than refusing to recognize it as valid. In theory, a talented coder can set relay rules for his client already. There is nothing preventing nodes with additional relay rules from rising any more than there is nothing preventing a miner from setting additional block inclusion rules, but those only affect that miner and those who choose to make use of his code & ruleset. A single miner who refuses to relay valid blocks produced by a competing mining pool amounts to little. But if a significant number of nodes have a similar relay rule that delays the transmission of a valid block without transactions, then that rule becomes a defacto sanction against the miner who produces null-set blocks.