Guns behave erratically when not assigned default ammunition data, such as accepted calibers or magazines.
This becomes obvious when using the gunmod system to give said data via gunmods / gun parts only. When the base gun (i.e. lower receiver for the AR-15) itself is not assigned default caliber, the assembled firearm will not display the ammo data (e.g. offsets from currently-loaded ammunition) correctly, defaulting to 0 (which may or may not be the base gun's stats).
Having default ammo data on the base gun makes it possible for the gun to shoot, even though in most situations it is yet incapable of doing so because it lacks the mechanisms that enable firing in the first place.
This means that the base gun is able to fire, despite technically lacking all of the necessary components.
The issue is addressible with a workaround of reducing the base gun's range to 0 or below. This causes an error on every attempt to move the cursor away from the character in aiming mode. This method does not prevent assembled guns from firing, so this is considered a safe error that can be ignored.