Rather than assume you thought of this let me suggest that you make a copy of each village and add the fortifications saving it as village21f for example. If fortified every time the f would load otherwise the regular would load. No need to share AI between those.
Update: I just tried it for the 12 th time today and still is not working. All but one time it has said either the faction name or some random unit name instead of the lords name.
A lancer doesn't need anything else but his lance and horse (maybe a shield). If you add a sword you will change that dynamic and he will still be a threat without his horse. He is a medieval paper tiger; high offense power but with a weakness (his horse).
Yes you are still protecting your cities, but your cities have less protection after rebellion because you no longer have the support of the other lords in the kingdom.
Now they are going to raided because you plunged them into war...
I am thinking that it might even be a good idea for all villages. There is really nothing that makes give war a second thought and an immediate -1 or -2 hit to all villages you rule if YOU declare war would help curb that. You then need to send fish or cheese to counter that.
Perhaps even have an option to spend 800 to 2,000 on "repairs to a village" which would give you a +5 bonus and increase the wealthy of the village unless already rich or very rich. Perhaps it is hirable from you Chancellor like caravans or it requires tools. If the village has bandits the caravan should be wasted.
The average citizen (whom I think relationship is a measure of) doesn't care about "rightful ruler" so much as you plunged them to war and they may be raided, killed, conscripted, etc. They don't like that so much.
Thinking along those lines the king and "lord" of a village should get a relationship hit when looted because they are attacked because of the kings actions and lords inactions.
Another thought is turned over carts or something at the right height for the archers to stand behind during city fights.
Perhaps something to narrow approachs right in front of where archers tend to spawn.
On a semi-related note I would like a garrison auto sort option for the arrival of defenders (attackers if possible). So you set the ratio of archers and either front or rear load the higher level troops.
So let's say I set the wall defense to 2 archers for each other unit and front load the higher level troops. That would mean 2 high tier archers spawn for every high tier infantry. Then lower tiers are drawn with the archer vs other being considered first. It would make much of the defense more realistic and less cumbersome. I recently realized I have about 1 hour of action for 2 of trading / training / running the state. Anything to automate that would be appreciated. Even if it was a daily trigger to just reorder the units.
How about randomly assigning some of the improvements to Castles and Towns at the beginning of the game.
Perhaps an improvement for Cities and Castles that enhance Training. Perhaps one makes defense easier by providing a few covers for archers to fire from behind. Or maybe some that would only benefit the AI like something that makes the street fights harder like entrenched positions. The player would not want it but the AI might start with it or build it.
I am mostly trying to add depth and some randomness so that games don't play the same.
I am fine with them breaking a treaty but they should loose honor and get controversy. There should be some consequence that makes it harder to make those treaties in the future. There is no official enforcement so "opinion" is it.
The logic of an Alliance is questionable. Perhaps it can be an option to stop at defense pact.
I am fine with Alliances in general just think a faction can only form one to balance it. Perhaps you can even start the game with random faction relationships. Perhaps the Vaegers love the Nords in my game and are not inclined to be aggressive toasted them but start a new game and that is different.