Then you disagree with the formula really. Maybe it shouldn't punish people trying to recharge things so much because they don't have any points in enchant skill; about 25% chance of success at 5 enchant skill. Perhaps recharging could succeed all the time, but your success chance becomes a baseline of the amount recharged and the rest is random. I haven't worked out all the consequences, so propose some other ideas.
A proposal from the ranks of the relatively unskilled?
Okay, here goes.
As I mentioned, I really don't see an issue with the first part of the formula that determines a boolean success or fail:
"x = (enchantTerm + intelligenceTerm + luckTerm) * fatigueTerm"
so I would then add:
if x > 100: x = 100
roll 100, success if roll < x"
That would remove the "punishment" for a too high skill level, and set x to a more equitable number for the computation of magnitude that follows.
I do not really know what is possible, or how to do it, but it occurred to me that a modifier on the roll would be worthwhile if it could be done without too much difficulty.
This is the part I would change:
"on success restore charge: soulgem charge * (roll / x)"
If roll was modified with a plus 5 or 10, and reduced from a random 100 to a random 90 or 95 respectively. I spent a while playing with it, and 10 seemed a bit much, but 5 would offer improvement without a big swing the other way.
So, I'm proposing a second roll (random 95) to determine magnitude then modified with a +5 in the last computation.
so it would look something like:
on success restore charge: soulgem charge * [(roll95 + 5) / x)]
I'm sure I've not got the right syntax, but I think the idea is valid with the two changes. At any rate, it is a proposal, eh?