Well, its faster to get recycled dummy unit for some visual thingy ( like a projectile ) than using that sorry ass slow CreateUnit.
Caster dummies dont have to be recycled, because spell casting is instant, so one or few static dumies are enough. However, for dummies casting channeling spells recycling might be a good idea, since its faster than CreateUnit ( people usually like fast code )
So, for dummies, its a speed thing.
For non dummy-units, recycling with custom death stuff, offers you more control over units death and stuff related to it. ( The more you trigger stuff, the more you have controll over it )
For example, if you want to make a spell that makes some Hero to take credit from all kills in some area, it would be pretty fast job to do.
( Just use the most highest priority for your event, and change that killing unit variable before other events trigger. If you have used to use GetKillingUnit instead of custom function, it might be a quite tricky spell to do. )
Well, ofc you can use a custom death system without recycling, so its not really a recycling thing..
But I dont really see how it is waste of time, since writing a system like that doesnt really take too much time at all. ( Well, maybe your time is more expensive than mine.. )
And yea recycling also makes unit indexing easy, since you dont have to recycle those indexe´s. You can also have non leaking damage detection systems without using DestroyTrigger.
And you dont have to null units, which is actually a bad thing, since I keep forgotting that I have to null units when I do code for some other guys.