I would challenge you to rewatch. I’m rewatching with an intent to see how Cordy’s Character is changed, and it’s quite clear “Apocalypse, Nowish” is NOT Cordy. I am currently in the middle of “Habeas Corpses” and her interactions in this episode is also clearly not Cordy. It’s there. Its subtle for the first-time viewer, but it’s quite obvious.
You cannot watch it now without already knowing. You know it isn't her. So it's easy to start seeing the oddness.
To my mind, Cordelia stopped being fully in control the minute that demon gave her the essense of demon... that SAME demon ascended her... because he'd been working for Jasmine all along. So, IMO, Cordelia either never came back, or the Cordelia that came back was like a Goa'uld host -- completely overwhelmed by the parasite inside even though she was fully aware.
Suppose, at the beginning of the arc, or at some point BEFORE she starts killing people and sleeping with virgin boys who might as well be her child, we had seen her doing something Jasmine-like... Behind her door, she is shown with a somewhat altered face, eating raw meat or worms or something else equally gross... maybe her eyes glow or something? And for those who weren't watching the first episode where this happened, maybe sometime before she kills Lilah, her eyes glow red... same when she starts to seduce Connor... she's shown holding him, and we get an over the shoulder where here eyes are clearly glowing... then she blinks.
That sort of signalling would be a way to show the audience that this is NOT their Cordelia. We could even have her later on complain that she'd been trying to tell Angel she wasn't herself by choosing those horrible close (when she woke up at the beginning of the new season because Willow was able to come and work with Wes to clear all the demonic/Jasmine from her cells) Of course, we would forgive her! Because it would be OUR Cordelia, totally rejecting the vileness... yes, even Connor comshuck vileness. Frankly, there would not be anything to forgive.
Alternately, her ascension could have been all the impregnating she needed and she didn't need to have sex with Connor at all... but sadly (not a direction I would have gone with his special skills) it makes sense that he was magically engineered for Jasmine because he obviously is magical.
As for the forgiveness of Angel: When Angelus became Angelus, we were keyed into that within the one episode. It was easy (for the audience, anyway) to forgive Angel later on, and yet, some people (Xander and Giles, & I think even Joyce) never trusted him again AND his relationship with Buffy was never the same, could never be the same... as Spike says, there are ALWAYS consequences. Yes, he was able to be redeemed, but no, things did not ever go back to 'normal'.
The point? If you wanted to take over Cordelia AGAIN, impregnate her AGAIN, (because, that is what we do with women, right?) there were much better ways to do it! The point of the exercise was to destroy the character... and the actress, IMO. You only have to look at how the Fred-Illyria transformation was handled to understand the difference. Fred was really gone, yet, we found ourselves getting attached to an ancient demon! One that was initially more powerful and dangerous than Cordelia. Cordelia was mostly dangerous as a Trojan horse. As I said before, just having the audience know that would have made it possible for her to come back unscathed, or at least 'rebuildable'.
Bottom line? The writing in the rest of both series (yes, even at its nadirs) is too well thought out for what they did to her to be any kind of accident of bad writing. It was intentional bad writing.