Should there be a minimum transaction limit to prevent dust spam?
There already is a limit of 5460 satoshi. It's unlikely any transaction smaller than this will be ever relayed or included in a block without colluding with a miner.

https://github.com/bitcoin/bitcoin/blob/b78d1cdf82fb12cc0c8eb9049074b359b9589b7c/src/core.h#L153