I think the confusion here lies in the (unfortunate) naming of the word "address", which implies that it is somehow a fixed, permanent identity.
Bitcoin addresses are nothing like that. Typically a new address is constructed for every separate incoming payment, and then used exactly once (when the funds are spent). A wallet is a continuously-growing collection of addresses, and while the amounts sent to every address individually are public, it is not public which addresses belong to whom, or even which addresses belong together.