Fortunately, some of the more obnoxious abuse these days looks categorically different from ordinary transactions: They create tons of 1e-8 value outputs (not 0 value, because the node software already blocks zero value outputs) which encode data.
Just a thought (not intended in opposition to this change, which is a band-aid that's obviously better than the status quo):
Maybe it would be better off just to allow people to pay a fee and create transactions with zero-value outputs. People seem to want to use the network to send messages, and like email spam this is an economic problem that can't be entirely solved by technical means, because the difference between a message and a payment is the user's intent, which can't be detected by software.
Am I right in thinking that unlike a 1-satoshi output, a zero-value output doesn't have to be forever stored by miners? If so, isn't that better than the status quo before this patch, which is producing gazillions of 1-satoshi outputs that have to be stored forever, and the probable status quo a little bit after this patch, where people carry on sending their messages by creating whatever other output they can get away with?