Azelf (all three games)
Availability: Azelf can be caught at Lake Valor, but only after defeating Cyrus for the last time (pretty late), so the only notable opponents that Azelf can battle are Volkner, the rival (once), and the Pokemon League. Even if Azelf is strong in battle, it has fewer positive matchups than something like Gligar would simply because it's available so late. In addition to this, Azelf is hard to catch, having 1/255 unmodified catch chance and roughly 1/24 catch chance when it has 1 HP and dusk balls are used.
Evolution: (:
Stats: Its 125 in both attack stats is definitely pretty good, and its 115 base speed allows it to outspeed most things. Its 75/70/70 bulk means it doesn't need constant healing, but still leaves Azelf very vulnerable to super effective attacks.
Typing: For a late-game Pokemon, Azelf's pure psychic typing doesn't help much. Veilstone Gym's fighting Pokemon and Team Galactic's poison Pokemon will already be defeated long before Azelf can be caught. Further, two Elite Four members specialize in bug and psychic Pokemon, which obviously puts Azelf at type disadvantages. Azelf's three weaknesses are definitely not fatal, but they do sometimes cause Azelf to lose matches, especially when compounded with Azelf's low defenses.
Movepool: Azelf's level up movepool is definitely okay, already knowing nasty plot when caught and learning extrasensory immediately after. Unfortunately, extrasensory isn't super effective against many of the notable late-game opponents. Fortunately, Azelf can learn fire blast, and a TM for fire blast can be picked up at Lake Verity and replaced for only P5500. Azelf can't learn any HM moves, so it won't be very helpful in that aspect.
Major Battles: These are the notable opponents that Azelf can 1v1 without overleveling (except for, of course, opponents lower than level 50), using TMs, and using items in-battle.
Volkner: Raichu, Ambipom, Octillery, Jolteon, Electivire, Luxray
Barry: Rapidash, Roserade, Floatzel, Staraptor, Infernape
Aaron: Beautifly, Dustox
Bertha: Gliscor, Quagsire, Whiscash, Sudowoodo, Golem
Flint: Rapidash, Steelix, Lopunny, Infernape
Lucian: Gallade, Medicham
Cynthia: Togekiss, Lucario, Roserade, Gastrodon
Azelf's late availability restricts its usefulness to only seven major battles, four (DP) three (Pt) of which are positive matchups. While Azelf's stats are pretty good, the main reasons why Azelf has few good matchups (or at least requires TMs to have more) are its typing, which causes it to be weak to megahorns, crunches, and shadow balls used by the rival and many Elite Fours' Pokemon, and its shallow level-up movepool, which makes Azelf useless against most things that resist extrasensory.
Additional Comments: While Azelf may look strong at first glance, its bad offensive typing and reliance on TMs does hinder it. Possibly by a random coincidence, psychic Pokemon work especially poorly against the Elite Four, and Azelf's late availability prevents it from being used in many other battles. Mainly because of late availability, but also due to low defenses, below-average offensive typing, and reliance on TMs, I nominate
Azelf for B tier in all three games.