Pre-determined classes are much easier to work with than most variations of choosing weapons/"skills", for balance and gameplay in general. For normals, it makes more sense to have classes that fill certain roles, like a class that heals (healer) and a class that sets traps (detonator), because when you design a class for a certain role, be it fortifying an area for defense (like scientist) or keeping bosses under pressure with overwhelming firepower (overweight), a team can be more flexible with strategy on the fly instead of having to plan out beforehand what weaponsets are needed to counter a boss thanks to consistency amongst classes. As for the boss, he should be able to look at a player and immediately be able to tell what class it is and how to deal with it based on its speed, currently held weapon, etc. He can look at an overweight and say to himself, "Okay, I know that class has immense firepower but also moves slowly and has overheat," and plan how to deal with it mid-fight. When he looks at a player with custom weapons, he has no clue what to expect, "Is that a gun in your pocket, or a loving rocket launcher?" he says to himself as someone who bought extra speed speeds by at mach 5. All in all, custom weapon sets and skills or whatever the hell are just lazy and never work as well as a class-system.