Need Advice on Component Structuring (for an FPS)

What you are essentially looking for is a modular weapons functionality. You can use BP interfaces, say something called BPI_GunFunctions. From here, you control all native functionality on the player pawn event graph, while gun specific functions can be passed on to the gun BP via the interface.