Welding it essentially does the same thing, but I think you can only add welds to baseparts. It really isn’t very inefficient to run that I don’t think.
RunService is well optimized and you should really just use the RenderStepped event from it. If you weld the arms to the camera you’ll encounter problems later on when trying to actually manipulate them. Welds are very limiting whereas CFraming gives you significantly more to work with. Implementing stuff like crouching is significantly dirtier when having to deal with welds.