Custodial lacks privacy for both sender and receiver, as the wallet sees everything. self-custodial mostly lacks privacy for the receiver.(you have to know where to send it)(But there's always a chance that the node routing your payment could be a secret spy node working for chainanalytics and figre out the sender too.)
This is a really good resource.