I like the idea of learning by doing (in principle), but because gaining skill is tied to very specific conditions and is very slow, this part of the game is just not fun at the moment.
What I would do is to implement a combination/selection of the following suggestions
1) Divide Attribute Points and Focus Points into classes: e.g. Combat, Social and Leadership. Each can only be spent on associated attributes/skills. You can still gain skills from 1H use and speed up polearms with it, but not trading. Not too bad from a realism point of view, too.
2) In the same vein, but going further: Limit focus points to each of the attributes, e.g. melee focus points can only be used on 1H, 2H and polearms, etc.
3) Necessarily at the same time, as suggested in this thread: Remove skill caps or give out more attribute points per level, so that pure combat/trade/leader/... builds are possible.
4) Alternatively to point 3): Convert the hard cap into a soft cap, i.e. attributes shift the point of diminishing returns. That is, the skill linearly becomes harder to learn beyond the soft cap limit. Increasing the attribute shifts this point.
A combination of this would already solve a lot of problems.
Further improvements:
4) Rework the perk placement. Some seem to be just random.
5) Make companions lower level and rework initial attribute/focus point distribution so that it makes more sense. Alternatively: Do not fully distribute all points initially. Then, after hiring them, the player can still shape the companions somewhat to his/her liking.