It seems an easy way to handle all the satoshi sized UTXO is simply for the wallet software to lump them in with a transaction along with, say, 0.01 BTC extra, with the 0.01000001 change appearing as an output transaction back to the originator.
Now the satoshi is lumped in with a reasonable sized transaction that is easily spent.
This is not done at the bitcoin protocol level, because outputs are more flexible than addresses. An alternative currency could use account balances instead of outputs, but this is not bitcoin today.
Wallet software will be able to do that in the future. It could rearrange your outputs at off peak times, when block space is cheap.
The problem is that miners don't have the financial incentive to include such lumping transactions for free and a rational user would not pay a fee, because fees would be bigger than the inputs themselves (0.0005 fee vs 0.00000001 input). It is economically rational to just leave those outputs dangling and never use them.
Unspent outputs have a cost for the whole network, because they need to be stored in fast storage and used for transaction validation.