I'd expect that once we create an attribute that let it not be effected by the healing spell, the it wouldn't be any different from adding a 'tag'. you just pick it from the list to add to the unit.
More or less what Jonny said. But to elaborate, your system only works one way. If I want to make a Holy Light spell that heals everything but the undead, then I'd have to create an attribute "Not affected by Holy_Light," go and apply it to every undead creature. Then if I download new undead creatures, I'd have to go apply it to those ones as well.
Whereas if we use a tag system ala NTJedi's suggestion, anyone who creates an undead unit would give it the undead tag; and if I want to make a spell that doesn't affect the undead, all I'd have to do is go into the spell editor and where it says, "Does not affect ______", I'd choose "Undead" from the drop-down menu.
And what if I want a Holy Light spell that heals living units, hurts undead units, and doesn't affect inanimate or mechanical units? In NTJedi's way, you'd create a spell that essentially works like this:
If(type contains 'living') then heal
Else If(type contains 'undead') then damage
Else do nothing
This can be achieved very easily with a good, simple UI. All the spell information and functionality is contained in the spell itself. Under your method, I don't even know how it would work. What would the base spell effect be? You could make the base spell effect be to heal, and then create an attribute to apply to all undead units that says "if affected by Holy Light, don't heal, but do damage" (and maybe you want the damage to be 1/2 of the magnitude of the healing power) and another trait to apply to all other non-living units that says "if affected by Holy Light, do nothing." There are two huge disadvantages to this: it means you can't mouse over a spell and easily figure out what it's going to do (because the spell effects wouldn't be contained in the spell, but on each individual unit), and it means that all units would end up with massive amounts of spell-related attributes (they would need one attribute for every spell that acts differently based on unit type - or terrain type or building type, etc).
Your idea would be passable if we weren't going to be able to share custom content (it would still suffer from the above two major disadvantages though), but it totally falls apart the moment you enable sharable custom content. A tag system lets you download units and spells and other content from lots of other players, and as long as they use intelligent naming conventions the content should be compatible without any extra work. And if you do download content with conflicting tags (maybe someone misspelled undead), it would require less work to resolve the conflict.