I've also had to actually learn QuakeC, which is becoming less a mystery every second. But I can really say that the flow of QuakeC is a bit haphazard for client connections.
In my opinion, since as it natural comes it doesn't distinguish between new connections and reconnects (even though it does, but it is a bit of an entangled mess). I guess in Quakeworld this is rather irrelevant, as Spike says the server aliases are cleared and resent every level. [I might head towards that eventually, it can't hurt anything].
The fun part of working with QuakeC when you already are working with the engine is the "if things don't support what you are doing" frustration doesn't really happen.

You just say "whatever" and make some changes to the engine source.
Notes / Observations:
1. A lot of NetQuake mods use QuakeC for things that are completely wrong for QuakeC to be doing. Most of the admin functions in mods is all wrong and QuakeC shouldn't be doing it:
A. Checking for blank names. QuakeC can't even do this right due to special characters.
B. Banning/Muting/Kicking. Should be done in the server engine, exposed via rcon.
C. What is left that QuakeC admin functions do? Changing maps, maybe killing a player. I'm thinking admin functions in QuakeC is possibly as "wrong" as spectating functions in QuakeC (Although for now I'll have to live with it.)
2. Here is part of the reason that QuakeC administrative functions are "wrong", using old ProQuake server as an example. You can ban a player, but they can still rcon (since that is the engine). That's silly as hell.
3. Lacking Quakeworld serverinfo stuff, the most ridiculously hard thing that is common with a NetQuake server is setting the map rotation. In QuakeC, this is a crapton of work. In the engine? Ha! Throw in new cvar ("map_rotation"). If cvar isn't "", override PF_changelevel. No QuakeC modification required.
4. pq_teamscores is kind of a standard in ProQuake, the qccx hackage QuakeC for that is terrible. ALL the qccx hacks that I know of, this is the only thing that really is hard to displace in NetQuake. qccx hacks are used for ip masking and generally other stuff that QuakeC shouldn't really be doing.