Well, it's up to them to define "spam", isn't it? And so far the transaction fee method of spam mitigation seems to be working out ok, right?
No, it's working out terribly. The majority of spam is not filtered by the fee method.
The code forms the entirety of the social contract. "Code" referring to officially sanctioned code that comes out of the official Bitcoin developer team. This code defines a set of rules, which enables trustless transfer of value. While I do agree with the goal (and indeed the necessity) of decentralization, I think that it can be taken too far. Everybody needs to play by the same set of rules. I don't think that some miners choosing to mine X transactions, while other miners reject them, is a good idea. There needs to be consistency between miners in order for the network to perform in a predictable manner, and performing in a predictable manner is the only way that Bitcoin will see greater adoption. (I seriously wanted to punch somebody when I sent like $500 worth of BTC in a straightforward transaction, and it wasn't confirmed for hour after hour due to the QT client not including a mining fee.... having that money out in unconfirmed limbo, when I could have included a 10¢ fee that would have gotten it included in the next block, was infuriating. But no, the fee wasn't even an option in the QT client. This is the kind of thing that makes end-users abandon a platform forever.)
The code is the Constitution, if you will. It defines the rules. There is no judicial branch to interpret the code. Just the code. There is no dicta, no Talmud, no human intervention, no wiggle room. Either a transaction fits the rules of the code, or it doesn't. Pure algorithmic consensus. This is the promise of Bitcoin, the great problem solved by Satoshi.
No, the code is just an implementation. At most, it defines the protocol. That's just part of Bitcoin - and not the part responsible for the spam filtering. Miners are another part, responsible for that.
There is no need for "consistency" between miners (actually a harmful thing to Bitcoin). If you need your transaction confirmed ASAP, you will just have to make it attractive to
all miners and hope they take it. It's not going to be confirmed for 5+ blocks after it's mined anyway, so even if you have to wait a block or two for it to be mined, it's really not that big of a deal.
Transaction fees have
always been an option in Bitcoin-Qt.