In my experience, I've always lashed out at those I cared the most about. I believe it's because I know if someone loves me, that no matter what I do they will be there tomorrow. Sometimes I think I test the friendship, strain it intentionally, feel that I don't deserve it.
This isn't saying that you should hang in there. If this is too much for you, it may be time to walk away, but it sounds as though you truly care and would forgive her yet again. She doesn't hate you. She is out of control and lashing out blindly at everyone. You especially because she knows you will forgive her.
I've put the people in my life through hell. I did care though, but sometimes it was too big for me. I couldn't cope with what I was going through and maintain a relationship. My poor ex-husband. He could be a jerk, but I was sure no picnic to live with.
Good luck to you.