+ // Never create dust outputs; if we would, just
+ // add the dust to the fee.
+ if (newTxOut.IsDust())
+ {
+ nFeeRet += nChange;
+ reservekey.ReturnKey();
+ }
Somehow this just keeps reminding me of http://www.snopes.com/business/bank/salami.asp and the story of why coins got ridges.
I think you misunderstand.
If you create a 1 BTC (or even 0.1 BTC or even 0.005 BTC) output it is highly likely to be spent eventually. Now how long may vary. Some outputs will be spent very quickly, some longer but the UXTO will be roughly based on the number of users * avg life of an unspent output. The UXTO (not unpruned historical blockchain) is the CRITICIAL RESOURCE.
However if you create a 1 satoshi output it likely will never be spent. Would you send 1 penny to your mortgage company to pay down the principal if it costs you $0.46 min to mail it? Of course not. So even with NO GROWTH in number of users the UXTO will continually bloat by the creation of "uneconomical transactions".
They can't be pruned, they can't be spent (well technically they can people will just choose not to) so they add the overall cost of the network for no benefit.