In addition to generating new addresses, everyone who has access to your XPUB has access to the transaction history from your entire collection of used wallet addresses. Instead of losing privacy on a single address, you'd be giving up privacy on ALL your addresses if you share your XPUB with random people. Not sure how this solves the problem.
Because HD pubkeys are derived from a tree you want to give a counterparty only a branch xpub, not the root one. That way they only know about addresses pertinent to them, not the whole heirarchy. See the multiple separate "wallet chains" in the diagram from the spec: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#master-key-generation
reply