From what I've seen as user, I think that (for BTC-like coins) they have one wallet they check for each and every user one address (per user) for inputs only.
Nah, you can deposit to different addresses. When you click to "generate address" it generates address and attach to your account name (i think exchange keeps this information in SQL database). But only for one deposit operation (it can depends through exchange).