Thal, ever thought about a balanced XP-system?
Example:
1. If difference between attacker.level and defender.level < 3 then normal XP for both units.
2. If difference between attacker.level and defender.level > 2 then minimum or no XP for superior and normal XP for inferior unit.
3. If city is involved then normal XP for attacker or defender.
This way, you would have a soft XP-cap shifting according to level difference. Minimum XP could be 1 so even too superior units get a little improvement.
Example:
1. If difference between attacker.level and defender.level < 3 then normal XP for both units.
2. If difference between attacker.level and defender.level > 2 then minimum or no XP for superior and normal XP for inferior unit.
3. If city is involved then normal XP for attacker or defender.
This way, you would have a soft XP-cap shifting according to level difference. Minimum XP could be 1 so even too superior units get a little improvement.