So, to wit, Substats at current are implemented in a way that both obfuscates and removes control from the player as to how their character develops. It also is one of/the only significant random chance in character development. And one of the few places where you lack any kind of control over it.
This can create situations where background and RP can be voided by RNG. Which is distinctly unpleasant to think about, at least for me.
Consider the ugle charmer, someone who has mastered psychology and uses it to play people while retaining an uglier outwards appearance than that mastery of psychology and charm would portray. This is something that would be impossible to do in a situation where the gains are randomized.
Consider the slow and steady marksman, who while they can't run very fast, is proficient in coordination and almost never misses a shot, this is another thing that can be potentially screwed over by random substat gains.
Opening up control, even to a minor degree, in substat development, improves player RP and provides a way to guide stat development, whether negative or positive, this doesn't have to expose more of the inherent systems it simply gives the players more control to shape their characters development in a way that makes sense. Hell it could be a placebo as well.
Space remaining permits that I can provide two potential solutions to this problem and discuss consequences of them shortly.
Solution One: Open up the stats system fully, and allow the selection each raise of the requisite substat.
Consequences vaguely: Too much control, allowance of too many variables, unrealistic and permits minmaxing a lot. However, provides a level of freedom you don't have now. I wouldn't choose this, but it would probably(Maybe) be the easiest to implement.
Solution Two: Selected Bias to the RNG. Essentially, where now presumably you have a 50% chance to gain one level in one substat or the other as you raise it. Add a toggle, either permanent or semi-permanent per rank or set number of raises that allows you to set a bias, so that it goes from what it is now to say 70-30 or some ratio between 65-45 and 80-20 that the devs think is sane.
Consequences: Freedom and control without unobfuscating the substats or allowing minmaxing too heavily, it would also require a lot of thought on the devs to generate the right setup of sane variables. A middle ground between total control and unobfuscation and the blackbox substats sit in right now. This can be paired with a say a mandatory minimum afterwhich you can change the ratio to allow players to not be overwhelmed with depth.