Barbara Allen did NOT break faith with John! She was fucking well raped - because she refused to betray him. How does this even remotely meet the terms of the curse?
Having played John, This Troper and Barbara argued over this one for a while backstage. Our conclusion: because the witches are bitches, why should they care in the first place? They have no reason to play fair, and practically state outright that they're going to cheat. Any loophole they can find will be employed to full effect.
This troper also played in it. It's not the rape that makes her unfaithful - it's when she accepts Jesus. When she says "Oh my Jesus, take my sin away!", she does a complete 180 from her previous stance of "He ain't no witch." It is at this point that she betrays John - which the villagers take advantage of and exacerbate by then handing her over to Marvin, thus sealing the betrayal.
I also acted in this play during high school-it certainly bugged me then. Sadly, it seems to be a severe case of Values Dissonance which goes back many centuries. For instance, The Divine Comedy had raped nuns in the lowest heaven, because "they broke their vows." Of course, we object, they did no such thing, but that wasn't how people viewed things back then apparently (or even in 1942 it seems). Incredibly screwed up for sure (thankfully Word of Dante, not actual Catholic or any other doctrine). I like the alternative "accepting Jesus" theory by the above troper though. It's certainly an interesting (and more palatable) interpretation.