1. Is "chips" your way to call a specific amount of bitcoin? If not, then I don't entirely understand the concept.
Yeah, it's chips of Bitcoin. You have chips of 0.001
BTC, 0.002
BTC, 1.024
BTC, e.t.c that represent your balance.
2. You already have tons of addresses[1] loaded with these amounts, once the user send funds to your address, you give them the funds back from [1] so basically they are not related in anyway with the amount he sent?
They aren't related with the amount he sent, since they were loaded before he deposited and wanted to mix. That makes timestamp tracking a lot harder to do.
3. Why giving the private keys of the addresses, can't you send the funds directly to an address he wants? or you support both?
IIRC, last I used it (before the new GUI), they gave you the private keys and there was a sweep button on the page to sweep the balance to an address of their choosing. I doubt they've removed it.