I think that the best way to do a class system is to have a squad system.
This allows you to customize what weapons are available on what maps. But rather than having new weapons made available to full squads, each squad/fireteam would have a pre-set number of slots. For example:
Let's say alpha squad is designed to be the assault squad. Lets say each squad has 8 slots. 1 NCO slot (sten), 3 assault slots (stens), and 4 riflemen slots (lee enfields). This means that assault squad has 4 smg's and 4 rifles. Bravo squad is designed to be the support squad. 1 NCO (sten), 2 LMG's (brens), 5 riflemen (lee enfields). When players join the game, instead of picking classes, they fill into the squads that have open slots. Each slot would have a unique loadout just for that slot. This might mean that 2 riflemen in the same squad would have a different loadout (one might have a frag grenade, the other an anti-tank grenade). This would also mean that the units in different squads would be specialized for different roles. ie a rifleman from the assault squad would have half the ammo, but twice as many grenades, and maybe some extra stamina. While a rifleman from the support squad would have extra ammo, and maybe a small bonus to help weapon spread, or increase suppression effects.
Being able to make each slot have it's own individual kit would allow for a higher level of realism by encouraging people in the assault squad to charge and take objectives (or they will soon run out of ammo), while the support squad can camp a causeway and unload at anything that moves, and not have to worry as much about ammo.
Having unique slots would allow for a 3 man MMG crew, a 2 man PIAT team, or specialized crewman slots where you have to be in those slots to be able to drive a tank. This system allows for class limitation, squad based team play, and a small degree of roleplaying (by having different squad be better at different tasks). It could also be made that being next to squad mates helps you resist suppression better than being next to strangers.
As far as snipers are concerned, I think it should be a map specific slot (accompanied by a spotter), and should be there instead of an MMG crew or other special weapon.
Edit: Maybe also make snipers more susceptible to suppressive fire.