I see no reason why the bitcoin GUI shouldn't allow to send low priority transanctions when sending small amounts. It could just add a warning: "if you do not pay a fee, your transaction may take a long time to be processed (a day?)". Also (but I think this has been suggested already), it should be possible to pay "milliBTC" fees. Paying a 0.01BTC fee when you are sending 0.05BTC is just not acceptable.
I may be completely wrong on this but, the problem is, for many of the transactions which Bitcoin popups up to tell you need a fee will never be confirmed. Unless a miner is running a specially modified version of bitcoin (I don't think there are any major miners which have modified their bitcoin for this purpose), the transaction will permanently be rejected by all miners. It's not that its delayed, it just doesn't happen. This is true to an extent, but it is mostly not true for the majority of txes which require a fee.
Some, you are right and I would agree with something added like this.
That said, I'd like to see something like this for other low-priority transactions. For example transactions which are very low priority, but which will eventually be confirmed, the client should ask you if you want to add a fee large enough to get out of the "very low priority transaction" level which puts your tx in a much smaller restriction of size/block in the standard client.
Despite the potential for spam, I would like to see more space available per block for "very low priority transactions" as its not like the rest of the space is anywhere near used right now anyway.