UTXO set is still too big itself.
Of course, but even in that case, they don't have to store it entirely from the start. For example: if they have the block headers, then users can gradually import needed parts of the UTXO set, while leaving everything else unused. There is a command called "importprunedfunds". It allows pruned nodes to import coins, even though they don't have the old block data anymore, because of pruning. Which means, that instead of carrying the whole UTXO set from the start, they could use "txoutproof" values, and gradually import historical data, and only to the extent of actual usage. And then, if some coins are left untouched for years, then they don't have to store any information about it.
Also, by doing it in that way, it would actually create an incentive, to keep your own transactions on your side. Then, if spammers will be unable to provide proofs, that their UTXOs exist, then they would be unable to spend their coins. Which will solve the problem of spammers, putting stuff in the UTXO set, and thinking that the rest of the network will store it forever. In theory it could, but it is not strictly needed, to have a purely monetary network, to keep the whole UTXO set. Instead, it could be shifted into user's side, to provide a proof, that a given UTXO exists, when spending it.