I am generated a substantial amount of exp from slaughtering combat rating 0 - 20 NPCs. My Sov literally leveled up to 9 off NPCs. And he takes generally 1-2. Yet when I attack army stacks of 4-5 from another kingdom, I get almost 0 exp. And the battle is MUCH harder. I've taken 10 HP damage, and gotten substantially less exp.
So recap, easier to run around slaughtering NPC's to get exp then to attack armies and monsters.