Well, first off, it's ability. Azelf has a pretty crappy ability for a psychic type. It would be a lot more interesting if it got something like, idk, Magic guard, though that would kinda make it the next Alakazam. Espeon, however, has a great ability in Magic Bounce, meaning it's a great way to prevent your opponent from setting up hazards. Azelf can only do this by means of taunt, and it can't switch in to block hazards. Magic Bounce is also an amazing option against stall, as toxic and the like can't really be given out that freely is there's an Espeon in the back. In this respect Espeon is a lot like Mega Sableye, though it's inferior bulk makes it a lot worse at sweeping/facilitating a sweep. Secondly, its surprise factor. So you know how quickly scarf Espeon can be? It's faster than almost every single Pokemon in the metagame, excluding scarf Azelf and the like. Thirdly, it hard-counters some of the best mons in the tier like Hydreigon, Beedril, and Cobalion, all of which can sweep without the proper check.
So yes, Azelf is better because of its movepool, but that's it. I would argue that Espeon does not fit the description of a C-rank mon, but rather a B as it fits more than a small niche and requires next to no support from its teammates aside from a weakness to what it can check and status move weakness. Espeon for B-!