Okay, to begin with, Willow's motives might have been selfish, but her excuse was that she was doing what she was doing to Tara, and later the whole gang, "for their own good," the same excuse that is used on several occasions throughout both series when someone, usually Angel or Giles, makes a decision mostly affecting someone else without giving them any input whatsoever in the decision. Willow did it when she tried to remove her friends' bad memories. Wes did it when he kidnapped baby Connor. Angel did it when he altered everyone's memories to forget about teenaged Connor. Giles tried to do it when he and Wood tried to kill Spike. All of those decisions were made with the honest desire to make things better or to protect someone, the perpetrators always got caught, and their actions were always seen as being wrong, despite all of their good intentions. The only difference that I can see between any or all of those cecisions and what Angel did was that he never got caught. Oh, and before we forget it, Angel's sacrifice only managed to delay the inevitable for a year, until Buffy died protecting another mortal, her sister, Dawn. Fate, it would seem, might be postponed, but it can never de avoided completely.
I find it somewhat ironic that the episode begins with Buffy confronts Angel for doing, to a much smaller scale, exactly what he wound up doing in the end: interfering with her life without letting her know what he was doing. His excuse? "I did what I thought was right."
What Angel did in "I Will Remember You" wasn't just his decision to make. It affected both him and Buffy, so she should have had equal input in that decision. In Buffy's own words, she was a big girl, capable of making her own choices. Which brings me to my major objection to Angel's actions in this episode.
Angel sets himself up more than once throughout the series as being the one who somehow has the right to decide the fate of others, always "for their own good," an excuse that might be valid for children, or someone like Drusilla, whose mental level is somewhere about pre-teen at best (and let's not forget whose fault THAT is). Adults, however, ultimately get to make their own choices, right or wrong, or at least they should be allowed to. Angel isn't Buffy's parent, and she isn't a child. As well intentioned as he might be, the decision simply isn't his to make, anmd it had the potential of affecting far more than just Buffy's life.
By having the Oracles take that day back, Angel did something that he had never done before. He altered the very fabric of time itself, something that has been illustrated time and again in fiction as always having far reaching, usually disastrous, consequences. If Buffy had, in fact, died protecting Angel, then almost certainly the Watchers' Council would have taken steps to either free Faith from prison and return her to duty under much closer supervision, possibly with the help of drugs, spells, or both, or, more likely, eliminate her altogether, allowing a new, probably more controllable, Slayer to be called and assigned to the hellmouth. Whether Faith or Slayer X, she might have been more realistic about her approach to saving the world from Glory by destroying the Key, plus a very annoying teenager, by simply killing Dawn long before Glory ever managed to get to her.
Ultimately, I think that if and when Buffy discovers just what Angel did to her, we are going to see a reaction similar to, but more severe than, what we saw in "Lies My Parents Told Me," when she closed the door in Giles' face. In both cases, the Slayer was betrayed by someone who she loved, both times with the best of intentions, but betrayal is still betrayal. Giles got caught, Angel got away with it.
(Just as a side note, did anyone else notice that the Mohra Demon was using Duncan Macleod's katana?)