Keeping Track of User Deposits with Bitcoin

I found the following statements about Bitcoin on the Ethereum SE:

When using Bitcoin one can generate new address per user of service
and save pair (address -> userId), so it is always obvious which
specific user sent coins.

Also, all these coins are stored in the wallet as UTXO, so it is easy to send them to another address paying fee once

I need to generate different unique deposit addresses for each user,
so they can send funds to their accounts while I can keep track of how
much each user deposited. This is fairly easy in other cryptos such as
bitcoin

Are these statements true?

If so, can someone explain why it “is fairly easy” to do this in Bitcoin”? Doesn’t Bitcoin also require UTXO Sweep when consolidating BTC from many addresses to one address? I was under the impression that BTC does not allow multiple public addresses corresponding to a single private key?

Read More