Lifesteal actually is much better balanced.
Basic attacks don't have any real variance in application. It's always right click, target is hit, take AD damage, repeat in AS seconds. For that reason, healing for a percentage of the damage dealt from basic attacks is a very stable value, which makes it much easier to balance.
Spells, on the other hand, have a massive variance. Area of effect, number of targets, base and scaling damage are all in wildly different proportions to each other. One mage has a full burst rotation potential of 840 before scaling while another has 2015 before (much higher ratios) scaling. One spell has a 1-3 second cooldown, another has a 30-second cooldown and isn't an ultimate.
You cannot account for every variance in the way spells work. The only way to actually balance a mage's sustain is within their own kit. If Spell Vamp was removed from items, we could actually afford to balance mages' personal sustain effects.