"counterparty" implies the two of you are transacting. if a counterparty is sending you BTC then he already knows that public key. that's how bitcoin works, by leveraging public-key cryptography.
That's not strictly true... If I tell the counter party to send to "1PQt7uqFwrrUBKSEo5MxNK355JrFuiV9Tg"... then they have the
hash (of a hash + some other bits) of my public key... but they don't have the public key itself. There is no way they can convert from "1PQt7uqFwrrUBKSEo5MxNK355JrFuiV9Tg" to "02BCF1E101DD5DA48A8FE26CE72F22DE8E42BBA39D782FCC1F8FE11745D83068F2" (without other things, like a signature)
Not that it really makes a difference from either a privacy or security point of view. There isn't a lot anyone can do with either unless you've been stupid and linked UTXOs by being careless when creating spending transactions.
But I think it is an important distinction between "public key" and "address".
I am wondering, if you get you public key exposed in public,
can other people more easily connect all your generated public addresses, and that way reduce your privacy?
Short Answer: No.
Longer Answer:
Public Key = No
Master Public Key = Yes