Suggestion about offense
In ancient battles, fortifcations made fighting difficult for sieging armies. The game very much correctly reflects this. But in this universe for every action there is a reaction. So, from long ago, ancient armies were striving to negate the advantage of fortifications, by employing different means such as battering rams , catapults, digging tunnels underground , destroying the foundations of the castle, changing the geography and so on. The siege of Tyre by Alexander the Great is an excelent example.
It is about time , for the game to start reflecting this. Sieging machines could be introduced that increase the power of the attacking army in the same way city defense does. For example 5000, 10000, 30000 and so on.
Still , there are some things to finalize the balance. Engineers could be introduced that they build special outposts at the outskirts of the besieged city, so that when an army attacks a city some percentage of fallen troops are revived for free. Like 5% , 10%, 20% and so on.
Believe it or not, even if all of this was done balance would be very good but not perfect. If more than the owner of the city has troops in , then the game should allow so many players to attack a city , together as there are defending lords inside the city target.
A by-product of all this, that is, making city fights viable again, is that players would think twice or thrice keeping huge defensive armies for themselves but would rather deploy them at capitals or pantheons where the might of many would offer greater security than their own city. That is, team play. And if they want to defend a city effectively they would necessarily ask for help.
Make it so , that only team play is viable if the given task is to highten the interest for the game. Make it so, that individual play is very difficult and accompanied by great losses.