When should "no problem" replace "you're welcome" as a response to "thank you"?
The phrase "no problem" is a short version of "It was no problem," implying that it didn't cause the person any trouble or hardship to do the thing for which they are being thanked.
It could be construed as an act of humility or deference, because they are suggesting that the action they performed, and any inconvenience it may have caused them, are unimportant relative to the positive impact to the thanking party.
Fully unpacked, it goes like this:
"It was no problem for me to hold the door for you, because your ease of access is more important than me getting to my car faster."
Compare this with "You're welcome", which could be construed as an acknowledgement by the thanked party that they did do something worth thanking.
In an extreme case, this could be construed as more selfish or even arrogant, because the thanked party is allowing attention to be on them, instead of the other party.
"You're welcome to this open door, which I am holding open."
Obviously both connotations are usually very minor and mostly ignored; most of the time, people choose 'you're welcome' or 'no problem' because "It's just what you say when someone thanks you." I doubt many people actually think it's arrogant to say "you're welcome" unless it's said with a rude tone of voice. However, these implications may explain why 'no problem' has become more common, and could even be seen as a more polite reply.
The main difference is that you're welcome is meant to be polite while no problem is meant to be friendly.