That's working as intended. The first time it runs it reduces maximum durability, the second time it runs it reduces current durability, and is why there are two durability settings in the gear tab.
Ok, I understand what you're trying to do now, and the problem seems to be the default values have a very low minimum value, especially in the case of scavs. The way your logic works is that final durability can be very low:
Code
AIGearCategory = PMCs
undefined changed durability: 100 => 94, max= 94
undefined changed durability: 94 => 36.660000000000004, max= 94
undefined changed durability: 100 => 79, max= 79
undefined changed durability: 79 => 42.660000000000004, max= 79
AIGearCategory = PMCs
undefined changed durability: 100 => 80, max= 80
undefined changed durability: 80 => 31.200000000000003, max= 80
AIGearCategory = scavs
undefined changed durability: 100 => 16, max= 16
undefined changed durability: 16 => 7.68, max= 16
AIGearCategory = scavs
undefined changed durability: 100 => 25, max= 25
undefined changed durability: 25 => 15, max= 25
AIGearCategory = scavs
undefined changed durability: 100 => 32, max= 32
undefined changed durability: 32 => 18.56, max= 32
undefined changed durability: 100 => 12.600000000000001, max= 12.600000000000001
undefined changed durability: 12.600000000000001 => 7.686000000000001, max= 12.600000000000001
Display More
The problem is even worse when progressive gear is enabled - almost everyone ends up with weapons in single digit durabilities. So I guess this goes back to the default configuration isn't great.