I think my approach is going the long way around to get to the same place Kyle advocates here: The granularity should only be there to support either flavor of the setting or meaningful game play (or preferably, both). The TL;DR version is go read Kyle's response again.
For the flavor of the setting, likely you don't have a crazy mix in any one area. So if you've got a lot of real-world details on guns, then you want something to distill the list down into meaningful game play decisions for where the setting starts. Yeah, I know, world-traveling mercs in modern or near future settings might be an exception. Still, there are only so many options the characters can pack. I don't know enough about guns to say where you'd draw the line. In a merc type game, maybe you deliberately have 2 or 3 representative options just to play up the need for specific ammo and so the characters can argue about 9 mm versus .45 versus .38 in character. Or the characters could be professionals that use standard equipment so that is one less thing to worry about in a firefight.
As for meaningful game play, I think you work backwards from what meaningful decisions there are in the game and then have the list reflect that. Don't let "realism" be the tail that wags the dog. That is, don't start with a list and then determine how to make game options. Well, maybe as a brainstorming exercise, but be fully prepared to toss out details from the list that don't end up mattering. Can you come up with a good game play reason to distinguish this class of guns from that class of guns? Does it provide enough game play value to justify the added complexity? Does it work well with the rest of the system? If it's "Yes" down the line, that one might be worth keeping. Otherwise, leave it out or at least collapse it into a broader category.
I went through this exercise in the last year when developing my weapon list for a early to mid medieval fantasy weapon list. I was mostly satisfied, but there were a few edge cases that were expanding the list. One of them was fine distinctions on throwing weapons. Then I realized that all I was really doing was trying to make the list carry the weight of the difference between this weapon is designed to be thrown versus this weapon is balanced enough to throw well versus this weapon can be thrown in a pinch. Which is really mostly about proficiency options, not the individual weapons on the list. So then I revised the game system slightly, and my weapon list got considerably shorter. (Some clunky weapons can be thrown but don't benefit from the throwing proficiency, which makes them an infrequent choice, which is the game play I wanted.)
As I said at the beginning, long way around to what Kyle said.