You can already do this with bitcoin core :
Enable Coin Control features :
Select which inputs to spend next time you want to make a transaction :
You would usually see the list of every input you received here, I just don't use bitcoin core, only installed it for the screenshot.
EDIT : I use Electrum and even them have this feature :
Just Show Coins, and you'll be able to spend specific inputs.
...some of them already have output-freeze options. for example Electrum lets you freeze addresses.
That would mean you would be able to block certain addresses to send you bitcoins right? That implies knowing the spammer addresses beforehand or blocking them after they already sent you some dust transactions. Unfortunately i haven't heard of a way to block transactions below a certain amount from reaching your wallet.
How would that even work? When the spammer broadcasts a transactions you just yell "NO" to the network and they won't include it in the next block?