Three words that get used interchangeably. Only one of them describes something that cannot run off with your SOL.
The words are treated as synonyms and they are not. The difference between them is the entire question you should be asking, which is: at any point, does somebody else control my coins?
You send coins to an operator. They pool them with other people's and send different coins back. Two problems, both structural: they hold your funds and can simply keep them, and they know exactly which output corresponds to which input, so your privacy is a promise rather than a property. Every exit scam in this category worked the same way, and nothing in the design stops the next one.
The same arrangement with better manners — multiple hops, staggered timing, split payouts. It improves what an outside observer sees, and it changes nothing about custody. If someone has to hold your coins to mix them, they can decline to give them back, and they can always tell which are yours.
No shuffling and no custody. You deposit into a program whose only way to release funds is to whoever presents a valid zero-knowledge proof. Withdrawing proves you own one of the deposits without indicating which one. The operator cannot pay themselves your deposit because there is no instruction that would do it, and cannot identify your withdrawal because the proof does not contain that information.
SolMix is the third kind. The mechanism is written out in full rather than summarised.
Removing the operator's ability to steal also removes their ability to help. There is no password reset and no support queue that could restore anything. Your note lives in your browser and nowhere else; lose it and the deposit stays in the pool for good. That is not a policy someone could be persuaded to change — no code path exists that could act on the decision.