Thought I would give an update, though there are no replies..
So... If I add an OnObjectEquipped/OnObjectUnEquipped handler a follower alias, both the items and enchantments get passed into the method when a follower equips/unequips a weapon. It IS called "Object" and not "Item", so I guess this shouldn't surprise me. However this seems to only be true for hostile enchmaents (you know... the ones that require charges). Furthermore, if the weapon is depleted, the enchmaent is still attached/received. So I can detect if they are using an enchanted weapon with or without SKSE, however either way, I have no idea how many charges the weapon has.
Second thing... I can "recharge" the item by RemoveItem(form) follower by AddItem(Form). So I made a prototype system that counted the number of enemies killed by the NPC and after every 15 kills, checked the inventory for soul gems and if enough were found, removed them and respawned+equipped the enchanted weapon.... thus recharging it.
It worked well for items like Grimsever, but ... As soon as I handed my NPCs crafted items with custom names and enchantments, the items were reset to their dull, unenchanted bases upon respawn. If there was a way to detect if the item was crafted, I would even consider making it only work for non-crafted items. But as far as I know, that isn't possible either.
Now... This system COULD WORK for a mod that only cares about recharging staffs. It just so happens that Vanilla skyrim does not allow people to "enchant" staffs. So you dont have to worry about accidently resetting a staff when you respawn it. Furthermore, a mod that only cares about staffs wouldn't need event handlers to detect if the item is enchanted (As all staffs are basically enchanted). They could just call GetEquippedItemType after each kill to see if the follower is holding a staff. If so, add one to the kill counter and after so many, check for soul gems and possibly respawn the staff.
For now, I am going to skip it because if I only recharge staffs and not all weapons, people will think it is a bug. But I thought I would post my findings for someone else.