Is it contextual or zero-tolerance?
It's going to be hard not saying the b-word. Not in the offensive variety, but I mean.... There's a Batman quote with it.
Definitely contextual, always. For example, I just said all four of those words, and you'll notice I'm not banned! Generally speaking, regarding the word "bitch," if the word is clearly not intended to apply in a gender sensitive way -- if you use it as a synonym for "asshole" or "jerk" -- it will be fine.
But other uses are not fine. If you are applying it to a woman in a situation that might be even remotely gender-specific, be careful. Also, applying it to a man in such a way that you intend to emasculate them, or imply they are weak or pathetic, is also not appropriate. So, "stop being a bitch" is not appropriate, for example.
Context will always matter. While sometimes people are not moderated simply because we don't see the post (it happens), many times people complain that [Poster X] was banned for saying a bad word, but [Poster Y] was not, and people think this is unfair. As you say, however, context matters -- the same exact words can mean very different things coming from different people at different times.
This makes the rules harder to follow, I realize this. They are not hard, fast, simple rules. We are relying on your ability to be reasonable and mature, and in almost all cases you'll be fine if you do.
Again, feel free to send me PMs if you need. Thanks.