OK, sometimes there’s a good reason to keep it private. But unless you find one, the rule of thumb should be to send the message to the broadest group of people involved.
What is the message about?
Is this the answer? If somebody asked you a question, there’s a good chance that (s)he isn’t the only one that doesn’t know. Write it in the channel of your project/team. If it doesn’t exist, create it.
Is this the question? Maybe someone else knows the answer.
Is this something interesting you found? Why limit the fun to a single person?
A lot of messages fall into those categories, and people are shy about it. Why do they hesitate? I think it’s because they don’t want to be considered spammers. Some people might not like being “spammed”, but:
There are ways to deal with it (limit @mentions in your messages, granulate the channels, teach people to use communicator asynchronously)
Maybe “some people” should adjust to the rest, not the other way around (from my experience most people like it or are indifferent)
Are there any other disadventages?
I can find a number of profits, though:
More communication. That’s the big deal here. From my experience there’s always too little communication. Not-sending PMs is an effortless way to make it better.
You deal with cases when someone doesn’t know what they doesn’t know, so can’t even ask.
When new people join the team/project and the channel, they can read previous messages, unlike your private ones
You can ask other people to join the discussion
For the sake of communication — be alergic to private messages.