I don't think what Babita is doing butchers her character at all. It may be things that audience doesn't like about Babita's character but her actions are very much consistent with how her character has been portrayed till date. She is a woman who lived a life where others always told her to behave a certain way. She may have come out of that shell but she is still just spreading her wings.
What Hanuman did to her as she was just slowly spreading her wings is called trial by fire. He intentionally gave a kind of blow that he knew would prevent her from making any more moves towards him. Now that she is doing exactly what was expected of her from Hanuman, he or the audience cannot cry foul. It would have been nice to see Babita raise above that blow and not react like she was expected to react to it.
As audience we know about Hanuman's feelings but the truth is that to Babita things have never been clarified. Even Mini has had a peek at Hanuman's feelings clearly but from Babita's perspective he has never truly told her how he feels about her and what she means to him. And of late, he has given her very confusing signals as well. He touches her intimately as if he has the right to touch her as he pleases but when she expresses her feelings in a similar vein by demanding that he stops drinking, he rebuffs her and tells her that she has no place in his life. The way i see it, Babita is confused by Hanuman's actions and given a chance to cut free of her confusion by moving away from him, she took it. Sometimes people do that, instead of being in a constant state of emotional turmoil, they shut it off and let their brain make a rational decision instead.
The way i see it, these situations are built up so that the story can move forward organically instead of feeling like things always and conveniently fit into place.