I can't find anything in the Box2D documentation about this. As far as I can tell it determines the contact friction at the beginning of the contact only, which would be why changing it during a contact has no effect. I can't find anything in the Box2D API that can update existing contacts either.
Considering physics engines are meant to be realistic, I'm not sure how they are supposed to react to an object with changing friction during a contact anyway - is that something that can happen in the real world? It seems a bit like reporting a bug when you teleport a physics object...