About the first question (is it possible to just use setattachment instead assigning a model to the entity ?): my understanding(*) is that setattachment needs to know where you are attaching the model to your entity and usually this information is part of the main model metadata. IIRC one can define such tag data programatically, but unless we are talking about very simple models and animations I wouldn't bother trying this.
(*) Of course, I may be completely wrong

- because my knowledge is based on how Quake 3 works; because all my attempts to use multipart models always involved 2 or more entities glued with MOVETYPE_FOLLOW and lots of ssqc (exactly the opposite Spike recommended to you); and specially if we are talking about FTE and/or csqc.