Just going by what you wrote, I think that approach would have problems of its own. As a player, the system you describe would encourage me to never take my soldiers out of training until they couldn't get any stats for free anymore. By that time they would all be at the default training cap, which means they might as well be clone troopers. They would remain clone troopers after that as well.
With your idea your main goal was to eliminate the vanilla system's incentive to game it for optimal gains. I would like to add two more goals: firstly to give the player an incentive to take soldiers on missions, and secondly for soldiers to differ from each other in terms of stats. I mean, it's all the personality they get. Let's not take it away.
So let's try a variation on your original idea:
- No stat gains from missions directly.
- Soldiers earn "mission XP" for going on missions, a la XCOM 2012. Exact method of earning this XP is up in the air, but the focus is on not giving the player explicit feedback that will incentivize gaming.
- When enough XP has been earned to "level up", a soldier can go in training for X days. Once training is complete that soldier gets stat gains in a random range per stat, a la Fire Emblem.
- Some maximum limit to gains earned this way so that a soldier can max out.
In this idea I chose to send soldiers into training to improve rather than improving them automatically because that way the player has more feedback on the process, plus it encourages building a deeper roster.
For me personally this would work better. That said, I never really had a problem with the vanilla system anyway, so I'm not really too invested here.