The way it is now, if I take off a piece of gear with +skill on it, the game will choose a skill to downgrade, and not the last one I added. This can cause serious problems and penalize the player by forcing them to downgrade that skill they last added and level up the skill to 20 again. I realize this is done to prevent people from getting free respecs, but you are basically penalizing everyone to keep a few people from respecing for free.
The solution is to remove the last skill added, in order as you remove points⌠BUT on adding a +skill item back on it adds that same point back on in order. So the only way they can change skills is actually using the remove skill point system.
If they remove 3 skill point items, and remove a single skill point via respec, then first two of three skill points will be added back on if they add on the 3 skill point items again. This way there is no cheating.
So, if you have Fireball at 23 points.
The last 3 skills you added were:
Point 21: Mana Sphere 2
Point 22: Piercing Heat 4
Point 23: Mana Sphere 3
If you remove 3 items, then put 2 back on, it adds Mana Sphere 2 and Piercing Heat 4 back on. If a week later they add another skill point back on it adds Mana Sphere 3.
If at some point they respec 1 point, it erases the last point on the last, so Mana Sphere 3. So the only way to remove all 3 from that list, is to respec 3 points.
If you change one +1 item for another +1 item, or you take it off to forge and put it back on, no needing to add the skill back, because it does it automatically. If you swap items to see which is better on your stats, then switch back, it goes back to where you were before.
Problem solved. No cheating to get free respecs.