What decides what an undownloaded weapon will look like. Example: combat rifle looks like a sword, TF2 minigun looks like a slow loading gun. What decides this?
It checks if the name contains common weapon names like "knife" or "sword" and tries to use an appropriate model. The tf2 minigun uses the gun model because it contains the word "gun". If it can't find a match, it picks either the gun or printer based on a hash of the item name (basically random, but the same every time).
It's basically all piece meal. Anything with "launcher" in the name uses the rocket launcher model. The HE grenade will use the hammer.
The combat rifle is a sword because it picks up on the "bat" in "combat" and thinks it's a melee weapon. I believe I fixed this in v14.