The problem is indirect.
But I will admit, I know I'm arguing a weak point here. Veterancy in CoH2 has needed an overhaul for a long time. If anything my argument only applies for infantry squads. For vehicles the current vet system more or less works, but for infantry, especially ones that wield AT weapons, it's a problem.
That said:
I think vet is far too ubiquitous which lowers the impact vet has (and can have, to be balanced.) But quite frankly, infantry vet was outright BROKEN for MONTHS and no one really noticed. (Or attempt to explain it without certain people shutting down all discussion for the sake of post count.) Units get to max vet almost independently of any strategy or tactics. In fact, just keeping a unit alive means that they'll most likely be maxed out in vet. But I'm mostly talking about the first few units built in the game, not Comets, Tigers or OKW units getting to vet 5.
I mean, I feel like units on the field could get veterancy automatically on fixed timed intervals and the vet system would play out more or less the same that it does now.
I agree that hand-held AT weapons are an issue with the current system but vet being ubiquitous is a balancing factor. Veterancy already has a significant impact and a system in which you might have one or two vet 3 squads in a close game might lead to the issues CoH1 had with the Brit veterancy system where losing one specific unit could lose you the game. Especially with often worthless vet 1s, CoH2 wouldn't work with hard-to-acquire veterancy.
While keeping a unit alive will generally end in vet 3, it becomes harder to do so over the course of the game and well-used units will gain vet faster than poorly-used ones.
I think the current system is the best of a bad lot so far. Survival-based veterancy (by time intervals) would be far worse than the current XP base.