The soldiers feel a bit generic and that's not really helped by the experience system. I agree that it would be nice to have a bit of specialization, but not so much that all soldiers are single role.
One possibility would be to split accuracy into multiple attributes so you have a base accuracy and several modifiers. So if you had accuracy 50, rifles +10, machine guns +0, you would have accuracy 60 with the assault rifle, and 50 with the machine gun. I could see this working with the categories of grenade, pistol, shotgun, rifle, machine gun, precision rifle, rocket launcher. All the weapons from other tiers are equivalent to one of these.
This would tie into the existing experience system. If you make several successful hits with a shotgun, instead of gaining accuracy +2, you might gain accuracy +1, shotgun +1.