Since there tends to be a lot of soldiers, manual tweaking should be minimized - I don't think anyone wants to assign dozen of points after each mission. One mechanism that could help this is to select a "growth profile" for each soldier. Then, as soldier gain experience, the profile determines which stats get improved. A "general" profile improves a bit of everything, other profiles are more specialized for marksmanship, or reactions, or physical prowess etc.
I made an experiment with "
kill-based experience", it may be a start to award stat increases. The selected "current profile" could be set in the soldier name.
However, in its current state it recomputes the stats from scratch, so it won't let you have soldiers who spend some time with a profile, an then some time with an other profile.