Light client nodes have to be runed to keep track of the latest state(utxo set) in utxo-based because that allows a wallet client can get the data to generate a transaction. In the case of monero and zcash, wallet clients need to the latest utxo set
When a wallet client fetches the output data from remote nodes, it's not controlable expect your own output.
IP of wallet clients can be seen from remote nodes if it's not protected by the specific solutions like vpn, tor.
It doesn't have censorship resistance. For example, they can refuge connections from the specific internet providers.
Wallet clients keep track of thier own balances, so they don't have to get the output from remote nodes to generate and sign transactions, but let's say, you get just 10 outputs from the remote node and then send 11 inputs, it's obviously detectable your actual input.
Wallet client don't verify the dummy outputs whether they're corrupted or controled by the remote node. If wallet client send transactions to the remote node, they can easily detect your actual output.
lightclientd in zcash protocol store blockchain data in a compact way. It allows wallet clients to query a merkle proof to generate transactions. It means lightclinetd can understand which commitment will be consumed by the wallet client.
remoe node in monero protocol also store latest blockchain state and wallet clients query the input set selected by the specific selection algorithm operated in remote node.Actually, remote node can be evil in some way, for example, they response corrupted outputs or controled outputs by themselevs as a decoys. In this way, users cannot verify whether it's poisoned outputs or not and the privacy aspects will be breadked in a statistical way.