I believe in giving people the benefit of the doubt in most cases. I believe that people are free to post just about anything they want on their wall. And I believe that if someone posts something for discussion, there's nothing wrong in discussing it honestly.
So, while I have certainly unfriended a person or two for continued offensive (to me) posts, I will try to start with the assumption that they are posting their honest opinion and may not have 1) known that others would take great offense or 2) not understood that their tone came off more harshly or judgemental than they intended.
There's absolutely nothing wrong with PMing a friend and saying "that hurt my feelings and here's why". Communicating your honest reaction to something, especially if it's negative, is good. It's not saying "don't post that", it's saying "we're friends, and I don't want this to come between us, so I'm letting you know how it made me feel, because I'm assuming that you didn't intend to make me feel this way."
For me, getting that kind of feedback is gold. I know that I would never intentionally be offensive to a friend, so them telling me that I am would cause me to be more socially aware of how I was presenting my ideas. At the same time, if someone that gets this feedback is just going to get defensive and overreact, well, then, you have your answer and can pull back from the friendship if you choose.
As for posting things publically, again, I don't see anything wrong with posting an opinion to a post that is invites discussion. For me, I try to consider two things:
1) Will posting it publically add to the discussion or will it just fuel an argument?
2) Will posting it publically be something that is beneficial for the rest of FB to see?
For a "this hurt my feelings" post, I don't think that it's something that meets the above criteria and I would PM it. For a "here's another point of view", I think publically posting it is fine. If I see that the person who owns the OP, however, is not open to having an intelligent discussion, then I choose to ignore and maybe even hide.