First, arti bonus against heavy isn't counted.
Emphasis mine.
To address your next point:
Artillery has a bonus of 6 against heavies. Heavy has a defense bonus of 6 on plains.
In case you don't realise, these two
do not cancel each other out unless the attackers base attack (after % increases) equals the defenders base defence (after % increases).
The breakpoint to 1-hit KO is around 20 attack to 1 defence.
If a unit has 26 defence you need 520ish attack to KO it. This would be 514 attack +6 from the boost for HMA units. This is equivalent to roughly 5700% increased attack needed for the trebuchet.
If a unit has 32 defence (26 + 6 from the boost) you need 640ish attack to KO it. This would be 634 attack + 6 from the boost for HMA units. This is equivalent to roughly 7000% increased attack needed for the trebuchet.
As you can see, because the boosts are not multiplied by the %s, the higher the % the less substantial the boost is. Since the Heavy unit we are discussing has no % defence increases his base defence is 26 and by adding 6 we are increasing his defence by about 30% of base.
The treb we are discussing has a theoretical boost of 6000%ish, and a base power of 540. If we add 6 we are increasing it's power by about 1% of base, which is pretty much a rounding error in our theoretical scenario.