Please give your opinions on classing in games.

Many games use a class type system. These classes usually are category progressive. That is, the expansion of a class than is confined to that class only i.e. a thief’s upgrades are not offered to a fighter class character. There are category-crossing concepts, but each, while working on a same base idea, is customized to be used by a single class.
Class categories allow a valuable idea to work in games. Facts are, choice overload is a real issue. Limiting choice provides a better experience. In games having a huge amount of choices, you can further limit them with the classing system. I posted a link to a Ted talk about choice overload/limiting long ago. http://www.opserver.de/ubb7/ubbthreads.php?ubb=showflat&Main=51595&Number=431916#Post431916
Therefore, games use built in classes, like Borderlands. Some games use stats to allow the user to pick best class, i.e. if you high strength and low intelligence you choose the Fighter. Which do you prefer?
I understand that class helps prevent the creation of all around or miss developed characters. Having a part fighter, thief, mage will produce a poor character that is over lapped by characters that develop in a single class type.
I also understand that in many cases these classes are built for pvp and coop multiplayer games. I may not serve best in single player games.
What would be you opinion to a system that starts with physical stats, strength, int, etc... Then allows all players to build using acquired skills? Even more, a system in which stats are non-upgradable? A system where the coop(Local or LAN) players choose how to expand the character , free of classes? A system in which a well-rounded character is valuable, when one of the other Classes (for lack of a term) is not part of the party?
Aside from my questions, please speak what you want on this subject and pose any other questions you have an interest in.
Thank you,
Mal