Both options are more geared towards an RPG type of game, and not a pure skill based shooter type of game.
If players expect an RPG game in which they level up and this increases the chance of attack hitting target and/or damage done by attack, either of these methods is fine, it’s just how you want to drive progression to keep player interest.
But if you want a skill based shooter, or players coming into your game are given the impression that this is a skill based shooter, they are going to be upset if they have arbitrary factors inhibiting their ability to shoot the bad guy.
But there is realistic ways to effect player accuracy. Gun wobble is the biggest and most obvious one. This can increase or decrease based on arbitrary experience level. If you are going to make it so that weapon types or character xp level introduces a random bullet offset factor, make sure the player knows and expects this.
But even in RPG games – and my experience with RPG games is casual ones like Elder Scroll Series – I think the trend is to move combat from the traditional numbers based approach (taken from board game tradition) and move to a real time, skill based approach.
I think thhe recent Fallout games strike a balance between the two styles. WIth the VAT’s target system your character XP and perks play into accuracy and damage, whereas you can also skip that entirely and just play the game like a regular shooter. But weapon damage still derives from character XP and perks – it’s not just set and based on the weapon itself. Which, personally, I think is kind of stupid. It’s not like a trained killer shooting somebody in the face with the same gun Aunt Sally shoots somebody in the face with does more or less trauma. Many gamers probably aren’t upset about this, but for me it is an obvious gamism and thus lessens immersion.
The first Ghost Recon games had skill tree progression, and these increased how much incoming damage you could receive, how quickly your aim wobble subsided, etc. But never gave you extra damage and the weapons accuracy/handling values were inherent. So, a maxed out character’s stats were still divided by the weapon stats, which makes sense. A trained soldier can handle a machine gun better than a less trained soldier, but it’s still a machine gun and nobody can fire it from the standing position with any accuracy.
Above all, the question is not, which method to choose? The question is, what experience do I want the player to have? and then, which methods will deliver that experience?