presumably svs.clients[0].spawned should be false when changing levels.
sv.signon is the signon message buffer. its a reliable buffer which is sent as part of the intial connection (when you first sign on). it also contains other precaches and things (the precache_model should be first, obviously). adding to it mid-map will NOT be visible to clients currently on the server.
thus checking the spawned setting *should* allow it to only fire when the client is already on the server and will thus be unable to see the signon buffer.
there might be a race condition between setting spawned and signons. in single player you're not likely to notice it, but its possible. iirc during this window the client won't receive either.
in multiplayer, the extra code is too hacky to be useful, and may be counter productive for modders who think that it'll work in multiplayer as it does in single player (including coop). by my definition this is a bug, or at best a hack, undesirable either way.
presumably, the logic used should be the same as the lightstyle logic iirc.
(all this stuff got rewritten in QW... and again in FTE... so I might be wrong with a few things)
imho the problem comes from requiem's protocol promotion feature. if there's more than 255 models precached, just switch protocols right from the start instead of randomly mid-message, that should help solve precache index sizes.