"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.
yes, thank you for pointing that out. i was thinking strictly in terms of the privacy implications, not the distinction between pubkeys and pubkey hashes.
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.
unfortunately, i think most people are careless when spending. they don't realize that regularly linking outputs together---even just by using default wallet settings---can expose most of their wallet history to outside observers.