I don't think it's possible without looking wanky. I tried to do something similar for HE grenades in the past, the problem is that apparently when the client's animation changes, the information is sent to the server too late, 1 frame difference. So if you want to replace the submodel via animations, there will always be 1 frame flicker back to the original model, which looks stupid to say the least (can't imagine what it'd look like if you were actually shooting the weapon...)