This is part of my quest to eliminate hard-coded fees from the reference implementation.
The first: Remove the rule that all outputs of free transactions must be greater than 0.01 XBT. Dust spam is now taken care of by making dusty outputs non-standard.
I did not change the coin selection algorithm, it will still try to avoid creating outputs less than 0.01 XBT. That could be changed/simplified a release after this rolls out to miners/relay nodes (before then, there is too much risk your free transactions would never confirm).
The second: Changes the maximum size of a free transaction that will be created from 10,000 bytes to 1,000 bytes. The idea behind this change is to make the free transaction area available to a greater number of people; with the default 27K-per-block, just three very-large very-high-priority transactions could fill the space.
I did not change the relay policy for free transactions (yet); you can still send a 26,000 byte zero-fee transaction and it will be relayed and might be mined. This just stops somebody moving a lot of old coins from accidentally monopolizing the free transaction area when they would almost certainly be perfectly happy to pay the fee.