if you are using vec_for_vertex, are you using other vertecies to determine the rotation of the weapon? you would need two extra verticies to determine the rotation. one to point it in the right direction and another to prevent it from spinning oddly.

this is even easier than animating each weapon because it means that less animations are requiured, one set of animations in the hands would suffice. Also, you wouldn't have to change animations of several models to change or add new animations.

to take care of weapon switching, edit the model in MED to move the whole thing such that the center of the model is at the position you wish for it to be held at.