What I understand is that your trying to add new behaviour to items without creating a large item class filled up with boolean flags indicating which behaviours the item owner has.
When I had to create a system for random item properties (Extra Damage, % Damage increase) I came up with the idea of using the decorator design pattern which allows you to create new item behaviour without the construction of deep hierachies and large classes. (http://en.wikipedia.org/wiki/Decorator_pattern
Maybe you want to take a look at this pattern.
You could have some kind of MagicItem class which has a reference to its owner and a method which can manipulate his owner (Add new skills or stats). Now this method can be overriden by the decorating items which can add additional behaviour or complete new behaviour.
The method could make something like this:
Hope this helps.