Is it necessary? Absolutely, as the current rule is inherently unfair.
"Absolutely necessary", perhaps just a tad overstated. "Unfair", perhaps in certain situations, but the primary lesson, and the message being taught is "Don't Retaliate". We have been telling coaches, teams and players for over 100 years, "Don't be the 2nd guy". That's an important message, because that's exactly how brawls and riots get started, after which the critique shifts from being fair or unfair to what we coulda/shoulda done to prevent what may have unfolded.
When we get to the point, that a player knows he can respond ALL HE WANTS, and the worst that can happen is he loses a benefit, he wasn't really expecting anyway, we're all going to be in for trouble. Penalties are not supposed to be fair, they are supposed to teach players that there are serious consequences for behaving badly. There is supposed to be enough pain to get the player's attention and convince him NOT to commit the foul.
Football is both a physical and emotional game. A natural reaction to "getting popped" is to pop back, and the penalty provided for popping back has to be serious enough to make a player hesitate in doing so, rather than react.
A while ago, we changed the rule for USC fouls, by A, during a scoring play, to be assessed as Dead Ball fouls, resulting in the score NOT being affected. Has that reduced taunting? Perhaps somewhat, but much likely not nearly as much as taking points off the board would have accomplished, by enforcment as a live ball foul. There the prime motivation for not being stupid would come from teammates, rather than relying on some inner concern about violating a rule.
The basic idea of penalties, is to reduce the benefit (which sometimes siply includes personal self gratification) of committing the foul.