Ok I Urp I did what you said. It happened exactly as you said.
So I will provide more details.
In my scene, I have a 2-bone leg. The knee faces the front view. It folds correctly, meaing that when I move the leg's effector, the knee bends towards the front view (Z positve).
Now I place the null that will serve as upvector in front of the knee (still in Z positive). I apply the constraint, and woops! the knee now points to the back! (Z negative). See below.
The red null on the left side is the upvector.

You see? If I place the null in the back, the leg stays in its orientation, but the effect of the null is inverted. So it is the same plane, it's just annoying to have to animate the null in an inverted fashion.
When I did your test, in fact I did 2 tests. One with the null behind (like you said), and one with the null in front. Both reacted the same way: the joint always faced the null (by facing I mean bending towards the null). So what is happening in my case?
Thanks - Merci
Bernard