My test bed is two spheres of equal density and size and with restitution set to 0 and for the first one I set velocity towards the second one and modified PModB (not PModA). In that case behaviour was similar to increasing mass of the second sphere.
Try the following. Set the test bed with no modifications at all. Run and check behaviour. Multiply PModA (by 0.1f) and check the behaviour. Then revert to normal, multiply PModB and see what happens. Plus instead of using arrow keys, use SetLinearVelocity, maybe there is something in your movement code.
As for interpenetration. Yes, there is some, it emerges when multiplier is close to 0. And that might be an issue in crowds... I will try to figure out what to do, meanwhile try to make the code work as it is strange that you see no effect.
And one thing for interpenetration. The task you've described is quite ambigous. Imagine a case when both bodies have 0 strength (they dont transfer any weight when they collide) and one body move towards the other one. Intuitively when body in motion hits motionless body, it should stop as it doesnt transfer its mass (strength 0). It cant move motionless body, yet cant pass thru it, so it should stop. But to stop the first body, second body must apply some impulse to it. But it cant, as it has strength of 0. Contradiction. (I hope my explanation is clear). Imagine same bodies (with 0 strength) moving towards each other, how are they supposed to change velocity of each other in this case?
Well, there is an option. They shouldnt change velocities. They will travel towards each other and... And here comes the separation. But separation forces are small and eventually body might penetrate each other and pass thru each other. You might increase separation forces, but that may lead to instabilities in other situations.
Okay, the code is here (b2ContactSolver.cpp): http://codepaste.net/e55knq
In my test case there is no interpenetration now. In the beginning of the code there are two variables _fa, _fb, representing strength of two colliding bodies (0 - no mass transfer, 1 - full mass transfer). And if two bodies with strength 0 collide, their velocity remains unchanged (they dont interpenetrate and dont move). You can find all my adjustments by searching for MODIFICATION word in code (there 3). I also increased maximum separation correction (by 10), in your case you may have to tune it (the less you change it the better).