If you search this bug report section, you’ll see there’s a thread about this long time ago, probably more than 6 months, and none of action took place, so it might imply that this is “a way” how Devs grant Tyrael to be capable of on his aggressive side.
To answer your question, assuming Devs didn’t grant him this capability of aggressiveness, then shouldn’t there be a maximum stack?, instead of that the cap is, to be precise, 9 stacks, as you mentioned, seems intentionally?
Also the text description for Illidan’s Sweeping strike and Purge Evil talent of Tyrael is significantly different, let’s see here
Sweeping strike; Dash towards target point, dealing 119 (+4% per level) damage to enemies along the way. Hitting an enemy increases Illidan’s Basic Attack damage by 35% for 3 seconds.
so, “Hitting an enemy” this means hitting at least an enemy will grant you the buff, no matter how many you hit, the effect won’t be stacked.
Purge Evil; Each enemy Hero hit by Smite increases Tyrael’s Basic Attack damage by 60% for 4 seconds.
This case is “Each enemy Hero hit”, that means he’s capable to get stacks from hitting heroes, in fact he can reach his 9 stacks to this point but his E CD still restricted him to do so, 5 stacks for hitting all enemy is the maximum cap till he reached his CDR talent at lv.16, if he get some kind of CDR from someone else, for obviously example, Nano boost, then he can time to use his E to stacks to 9 stacks.
last but not least, Tyrael is a “dive tank” who barely have significant CC abilities, agility and assault are his strengths.