I'm currently in the middle of collaboratively drafting a system wherein user choice and user freedom (and horizontal progression) is prioritized above all else.
The gist of things is this: you can create the most beautiful and complex system in the world, something completely revolutionary, but if it
at all restricts player choice, it will be disliked by some. The fewer artificial limits you impose on a player, the better. Instead of imposing restrictions, you create an environment where the player must carefully design a build that is synergistic with itself, with its interactions between ability, weapon, and movement, and with the other frames fighting alongside it.
Path of Exile is a prime but vertically scaled example of what I mean here. You have enormous freedom to design whatever you want, the skill tree is fully unlocked, and any starting character can take any node and wield any weapon. The only things that restrict you are minor differences in campaign rewards that are easily overcome, and the fact that the base system was generally well designed. When considering a build, you must design it so it is the most efficient it can be while accomplishing what it seeks to accomplish.
I won't say much about the draft we've got going on, because while it's cohesive conceptually, it's not articulated in its entirety yet, and doing so will require a lot of writing and revision. But again, the idea behind it is to take what was amazing behind beta Firefall, look at what was restrictive about it, cross-examine it with other breakthroughs in the industry, and revise it so as to eliminate as many systemic restrictions as possible.
A class system, to me, in light of certain innovations in the field, is a bit of a cop-out. Not to say it isn't without its merits, but most of them err on the side of caution. They wade in shallow waters of design, deep enough to splash and look for shells, but not far enough in to dive into an ocean of design possibility. Deeper dives are not without risk, but think of all the freedom to explore you could have when those dives are enabled by the system, when the game sets up an environment where you can explore.
Think of the difference between falling off a platform and running into an invisible wall. What happens if you fall off the platform? You lose a few souls maybe, or you respawn at a checkpoint. Nothing really terrible happens. But, if you encounter an invisible wall, it breaks immersion. It gives the player the feeling that they're being babied.
Nothing happens, because there is no risk. It is a sterile sort of design, when you impose restrictions with the intent of protecting a player from setbacks. I believe the key to designing it properly is to create a system with an enormous amount of underlying depth and potential exploration, and then to gently conceal it behind layers of usability. Create default settings that suffice up until a certain point, give the player configurations by default, whether it be in gear or optimization, that will carry their interest well into the game. This way, once they hit their first challenge, they're invested enough to get excited about it. They'll
want to learn more. Games like Path of Exile are
notoriously complicated, but they have such an amazing fanbase and extensive collection of userguides, because the beginning is easy. You can play through normal and cruel with little issue, but Merciless will stump you. Notice what I linked was a tool for creating builds. One of the challenges of creating something amazing is giving the player tools to work with that will empower them to make the most of it.