A time before classes can be selected should work fine for the most part. Logically nobody would put this time to 5 minutes, so some people that are super slow still wont have their favourite weapon. But in ROOST over 90% of the people can join in under a minute for instance. While only 1 person, the one with the fastest computer can pick every weapon he'd like. And giving 90% of the people an equal chance of selecting a weapon is still more fair then only the 10% fastest people.
However who is able to click the fastest depends heavily on a players ping. And I don't know if I want the youngest and fastest players always to take up all the classes
---------------------------------
Personally what I think would be the best, would be if people could simply sign up for some weapons upon joining a server. And 10 seconds before everybody spawns, out of those lists random winner(s) are selected.
Just like in ROOST, a server would be able to select at what time the rattle is for the weaponry, so this could be set to say that the weapons will be divided among players after 1 minute. So nobody would have to wait for 5 minutes before starting unless the server Admin prefers it like that. But at preference of an Admin the rattle time could be set to 0 seconds leaving it exactly the same as it is now.
For example 5 people want to be sniper, randomly out of those 5 people one person is selected to be the sniper, then the 4 other persons can select what ever weapons are not taken up by then.
This procedure could be repeated after every round. Like after the first round is over everybody could have 10 seconds to select a class for the rattle, and then 10 seconds to select your class if you didn't obtain your preferred class. The second voting system could be made similar to accumulated map voting, so players that didn't get their preferred class last time could get a bigger chance in the second round, than players who were able to get their first choice.
The main thing for me is to take away the dependency on a players money (super computer/super broadband), or the location to the server. And give everybody the same chance at obtaining their favourite weapon.
Resetting all the classes at the end of a round, allows for possible game types similar to the RTCW stopwatch mode as well, which can make public play a bit more competitive.