@Levis
Here is a first attempt. I divided into three catagories,
1) personal combat
2) ship related
3) trade/commerce/smuggling/sneaky etc
Most roles have one set of things in number 2, so it probably works pretty much as well as having 8 categories now that we have the noncontribute mechanic.
All 7 ship related skills add 1 point each to ship related.
Fencing has a 5 rating for personal combat, nothing else factors in
This seems extreme, but it actually seems to get close to the result we want. The idea is that most characters have a mix of the other skills, so they don't need much of a multiplier there, they are getting it across multiple sources. And we don't need accuracy or grappling factored into personal combat, because the same officers having those skills also have at least some fencing, and it would just work to countermand the inclusion of those in ship related.
We might need a controntibute chance for most officers, but much lower (since they have more skills on the list to roll the noncontribute for), something like OfficerTypes.(type).noncontribchance = 2;
Captains spend all their perk points when they get high level, low level officers seem to pick well.
Performance wise, my impression is this is lightning FAST. Dungeons, towns, everything is loading much faster, even with postinit set to 0. With postinit left on, I no longer notice any drag in the first few moments.
The debug logs seem to indicate the reason why--much shorter, crated characters are finishing their perk selection quickly with little need for repeats in comparison.
There is one problem--they pick perks so well that even with the things Levis has set up to make them skip perks at low levels, they don't seem to do so enough, and still end up spending all their points. This is good for random characters, fighters, etc, but if you want hirable officers to save up a point or two, there will probably need to be something more to cause it.
So, turning if over to you Levis for further improvements or complete scrapping or whatever, or to see if it gives you the kind of officers you like already. I think with your improvements this will basic plan will work pretty well, especially performance wise.

Btw, I am not sure changes in these files make it into current saves, it seemed like I had to start a new game to get the effects of changes in the catagories, not sure though.
What we might want is some check to randomly point to it to the lower valued list or lower valued perk, to introduce more variety so they pick "wrong" slightly more often. Not sure how to write that.
EDIT: pulling out file and reuploading with the forgotten perks_init below