the only use for colormap is as a player colour (or in qw, skin too) lookup.
using the _baseline_ value won't work, as the bodyqueue will have 0 values in there.
but I would recommend just storing the .colormap value and using that directly. If its greater than MAX_SCOREBOARD, set it to 0 in your parser, but otherwise just check it against 0 for 'default' and otherwise treat it as a simple 1-based player index. vid.colormap is completely redundant in a gl renderer.
yes, you have to be careful about multiple ents with different models using the same colormap value (like players vs gibbed heads, or TF's sentry guns etc). glquake simply uses the playertextures array only if the model is "progs/player.mdl". Which sucks, especially for quakerally. But any other solution requires some sort of per-model per-colour per-skin lookup, although I suppose you can update that playertextures array only if the correct entity has that colormap set and read-as-0 if the model of your non-player-entity with the same colormap differs. that would get quakerally working properly at least.

not that anyone really cares about quakerally.
.