It is synchronizing because Weapon and reloading are not paired.
The sub-event:
+ reloading: animation "default" finished
is picking that one reloading object and all the Weapons with an ammo of 0.
To fix you need to pick the Weapon that you want paired with reloading. You could use a variable with UID or since it appears that your weapons don't move you can pick the Weapon that is in the same location as reloading.
+ Weapon: Value 'ammo' Equal to 0
+ System: Trigger once
-> System: Create object reloading on layer 1 at (Weapon.x, Weapon.y)
+ reloading: Animation "Default" finished
+ Weapon: X Equal to reloading.X
+ Weapon: Y Equal to reloading.Y
-> reloading: Destroy
-> Weapon: Set 'ammo' to 3