(rand(0.0, 1.0) < min(item_weight * 0.33, 2.0) * min((raw_damage - 20.0) * 0.5, 10.0) * 0.015)
This is the line that determines knockdown as far as I know. Assuming that a good hit will most likely hit the upper border for the raw_damage(40 dam), even with a 1h mace, it would simplify to:
(rand(0.0, 1.0) < min(item_weight * 0.33, 2.0) * 0.15)
With a weapon lighter than the upper weight limit of 6, it would further simplify to:
(rand(0.0, 1.0) < item_weight * 0.05
So a winged mace with the weight of 1.8 would have a kd chance of 1.8/20 = 9% and a mallet with a weight of 6 would have 6/20=30%. Getting knocked down twice in a row would mean for the mace: 9%*9%=0.081%<1%. Happens less than one in a hundred times. It's a bit more likely for the mallet (30%*30%=9%) but the recipient will most likely be dead before.
I don't really see a problem here. Personally I'd substitude the luck based knockdown with a skillbased one, but that would take work. Also cmp busy and I have dragons to kill.