I am not sure if i am getting mechanics of game well, but it seems that:
the way damage is calculated now means that basically once you are hit the damage is always happening, though a minor one. It leads to situation, that if you are attacked by an unit with attack of 4 it does not matter whether you have 30 or 300 defense. 300 defense give you huge bonus when you are facing creature that have over 200 attack, but is as useful as defense of 30 against units with little attack .. Drives me crazy when my super unit with stone skin etc. with a huge defense still suffers from a militia useless clubs ... They should not even scratched it, or do it rarely. We had the problem already that the damage would never happened, and it was boring. Now for me it is a new extreme, when you are hit way too often. A high defense is of no useful for the most of time. And it is illogical that armor that is 30x tougher, behaves the same way with low-level units, and only shows its power again epic monsters ...
Possible solution: it is a little bit way around. What if very high defense, particularly in case where the difference between attack and defense is significant, would reduce a chance of being hit as a dodge does ? In fact, that what would exactly happen, a hidden bonus to dodge. Unit would be hit less frequently, but if hit it would still take some damage. This way some proportion would be maintained.