Here's the thing about any feature you ever want to implement into a game.
It isn't so much what it is or how it works that is important. What's important is how it's implemented, used, and supported by your gameplay. If this is going to be the feature it sounds like it will be, then it needs to be the main focus of combat (or one of the main focuses). What does this mean in the short term? Well, in the short term, it means you are going to need to be focusing heavily on varying types, varying effects (beyond mere damage values), and monster variety. Without any of those things, it can quickly and easily nullify anything you want to do with that kind of system. Let's take a look at Pokémon for a moment. We have about 18 or 19 types now? Somewhere along those lines? Some of the mons can be two types of element. All mons can carry up to 4 different elemental attacks. Not all of these attacks are learnable by every mon either. Not all of them are as effective on each mon. A Solarbeam is more powerful coming from a grass type than a fire type. These mons also have abilities which can sometimes nullify other types or bolster some types. The sheer variety in all of these attacks makes for an interesting metagame among players.
I'm not saying you need to do exactly what Pokémon does, but taking a look at the games and seeing how they solved balance issues and other things would be a good step forward with your system.
Now, what does it all mean in the long term? It means a TON of rebalancing in store for you. You will be constantly testing your attacks against enemies at varying levels and stats to make sure nothing is too powerful or too weak for what you need. Whenever you have a "limited" amount of skills that can be equipped, the longest part of your project will almost always end up being the tweaking and refining of game balance.
So, we get to my actual opinion on the subject:
I don't honestly believe a skill should exist in a game, unless it needs to exist. I don't believe in having Fire 1, Fire 2, and Fire 3. My opinion is that Fire 1 should be replaced with Fire 2, and likewise up to Fire 3. My own game has a system similar to this. Most every character learns six skills. These skills are what make the characters unique and intriguing to carry along with you for combat. Currently (with my limited monster amounts at the moment), the balance among character classes and skills is fairly perfect. I have some classes that overlap others in some ways and I've got other classes that can tackle the same problems as other classes in much different ways. As an example, I may have a high defense enemy that can only be destroyed by someone with a high Speed Stat. But, uh oh, you didn't bring either of the characters that use Speed to attack their target. So what do you do? Well, it just so happens that using a Blunt weapon on an armored enemy can do decent amounts of damage, and there are a few characters who can equip those. But, oh no, nobody has any of those weapons equipped! Well, the same enemy could also be destroyed by using magic abilities or a specific element type if you had a wizard with you.
If you create a battle system in which the skills you equip are important, you also need to remember that at some point, players will have skills that are completely unsuited for the combat ahead. You either need to subtly alert them to that somewhere in the game, or do what I did with my characters and allow multiple ways attack the same problems with enemies so that there is never a "no solution" scenario.