I have seen ammo bug deletion scripts before. Its pretty much as simple as this:
#loop
_obj = nearestobject [player,"WeaponHolder"]
_obj2 = nearestobject [player,"SecondaryWeaponHolder"]
? (Isnull _obj) && (Isnull _obj2) : exit
deletevehicle _obj
deletevehicle _obj2
goto "loop"
of course this would also delete any mags or weapons you yourself have placed on the ground, but hey its better than having a ton of lag from the ammo bugs.