Or how about....
Remove the traits completely! Try justifying them in a historical context... and not just the obvious Panzer leader one. Traits are just a recognition of optimum performance in a particular field of command. That's what skill level is. IRL leaders stay in jobs a lot longer than in HOI, and are recognised as excelling in a particular field because of that. The game simulates it back to front... they are given the traits first, so that players (who shouldn't really know someone's trait if they haven't used it much) optimise performance by ensuring that the commanders with the right traits arrive at the optimal place for that trait...
For example, if General Kopf, an above average leader, spends a lot of time on the Eastern Front in winter and does quite well, its because he's a good leader. There is nothing magical about it. Sixty years later it is decided that he must have been optimal at performing during the winter, so he is given a winter trait. The player, knowing in 1936 that the guy works well in winter (even though he may never have even left his house in winter at that time), plans to appoint him to a Corps on the Eastern Front in January 1942 because of this. If you wanted to be more accurate about the winter thing, then give every Soviet general the trait, because they can deal with it far better than most Western troops. You can make this logic for many of the traits. You may as well have 'luck' as a trait, since a lot of commanders seem to succeed regardless of basic ability.
The traits make the game too much of an RPG. It encourages (together with the lack of a proper command structure) ahistorical rotation of commanders at a ridiculous rate. There should be far greater penalties for changing commanders.