If I remember correctly, the original GL skin code sucked donkey's balls. It was incorrect (as you've stated), and, I believe, uploading every frame. The custom skin code in QW was a train-wreck of potential buffer overflows. Dead bodies did not work reliably. I put a
lot of effort into getting it "right" in QF back in 2000, with a few rewrites since.
I can say that, while "ugly" (tastes will vary), using color maps sure was nice for QF's current GLSL implementation
