Any non-zero unspent transaction output that is not provably unspendable.
An output script starting with OP_RETURN is provably unspendable, so it can be pruned.
But an output with a fake public key or fake script hash (such as produced by STAMPS) is unspendable, but that's not always obvious. Thus these outputs must be retained in the UTXO set. These are the most harmful ones.
Yes, it is consensus-valid to create and spend UTXOs with an amount of 0. Therefore, any full node must retain them to not potentially be forked off the network.
OP_RETURN
is provably unspendable, so it can be pruned.