I don't know about weighted vertices, each vertex has an index that refers to bone.

Yes, having relative and transformed matrix for each bone makes it only 1 multiplication per vertex, smooth enough.

Can't remember now if glMultMatrixf is allowed to call between glBegin and glEnd but i guess i could calculate it too...