Most people do seem to adore Zack, but the script+localization of Crisis Core did him few favors for me based on the ancient half-truth memories of that game I still possess. CC has kind of a "lite" version of one of FFXIII's biggest issues (and certainly the laughingstock of Dissidia): its script is built on a kind of "keyword search" parameter.
"Hero"
"Heroes"
"Angels"
"Monsters"
"Courage"
So on, so forth. The critical path has a few particular words that just... shape entire passages. FFVII itself doesn't really do this; it's diverse and it tackles a whole bunch of things. Sure, important words like "Sephiroth" are going to pop up five hundred times, but characters don't look one-another in the eye and go, "being a hero is about the courage to overcome our inner monsters." "Are we monsters? I think we're angels...!"
Disclaimer: Yeah, I totally haven't played Crisis Core since launch. I fully admit I'm in pisspoor shape to provide examples, and so I totally made up that exchange. But from what I recall of Compilation, that's how a lot of dialogue went in those games, whereas VII wasn't like that and most Square games from VII's era weren't like that either. Not really.
I do remember Zack being less of an offender than some of his supporting cast, though, and I think Aerith and Yuffie were written pretty sharply actually.