I find it's the powers of the class that really define what weapons work well, or "better than" others.
I think Mass Effect 3 was spot-on with removing the weapon restrictions and the addition of a weight system, it kept the "function" of the classes intact while increasing the "fun" in the function.
Each class can be considered a "jack-of-all-trades" to some degree, with each one emphasizing one role or another, especially with the use of their class passive.
The "core" classes tend to be less complex than the "hybrids", I find they have more direct strategies:
Soldier is obviously the simplest, what with "shoot it", and if that doesn't work, shoot it some more. Emphasis on using ammo powers, and whittling down enemies with gunfire.
Engineer is simple too, with nothing but tech powers. Emphasis on setting up/detonating combos to wear down defenses and using drones for numerical superiority.
Adept is superficially like the Engineer, but with biotics. Emphasis on enemy disruption and battlefield control.
The "hybrid" classes are more about flexibility, I find they fulfill "functions" rather than specific tactics:
Infiltrator being combat/tech relies on powers to start attacks and weapons to finish them. Emphasis on single-target elimination with careful strikes.
Vanguard being combat/biotic is a room-sweeper. Emphasis on getting in, cleaning house, and getting out.
Sentinel being biotic/tech takes the "jack-of-all-trades" thing and runs with it. Emphasis on being able to perform any tactic at any time, perhaps not as effective at close-quarters as a Vanguard, or as precise as an Infiltrator, etc. but is by no means lesser for it.
Long story short, the classes were made with different battlefield roles in mind, but are in no way saying you MUST do this in battle if you are THIS class.
In all honesty, if you want to focus on close-quarters, clearing a room with force and power, then pick Vanguard. If you pick Engineer instead and say the class doesn't work, it's because you picked the wrong class for what you wanted to do.
So basically, the "problem" is not that the classes are bad, it's that we pick ones that don't match what we want to do.
BioWare did excellently with class balance, there is no "best" class, since that is determinant on what you want to actually do in-game.