Not really. One company can keep double accounting - the legal arms can go on-chain, the rest go off-chain.
Or they can keep everything on-chain and the illegal part is handled by 3rd party companies that don't keep on-chain records.
Illegal factories will always exist.
However, it seems to me that the effect could improve the situation when it comes to illegal trade - I mean reduce it
Similar solutions are being implemented on the drug market (legal drugs) and it seems to me a very good idea.
Even the company is legit but how blockchain record of a bullet or arms can stop trafficking? If somebody stole from their inventory and sold in gray market? They are still lethal whether blockchain have their record or not.
Not sure how exactly will look identification of gun or bullet, but if will be stolen it should be identified somehow - now is implemented method to identify art works.. Maybe something simiar will also be helpful here..?