Rome II with all its faults had working cities with plazas and walls. Shogun 2 had maybe 6-8 actually distinct fortresses, where folks just line up on some walls most the time and do tower defense. The AI was always jank.
The "tower defense" gameplay in Shogun 2 was way more enjoyable than in Rome 2 though. Having a small fortress you can tightly defend against overwhelming odds is more fun than having a sprawling city where you're running foot soldiers around plugging gaps along a 20 km long wall.
The other part is the crazy requirement that soldiers be able to fight each other on boats which are very often moving around. Quite honestly naval hand to hand combat is pretty boring, but tacking that requirement on by featuring it in a trailer is an insane decision. Sounds like the marketing team wanted to do Saving Private Ryan in 200 BC. The number of times I actually used this mechanic in a 30 hour campaign was like 3-4 times, and it sucked every time. Typically the soldiers would slowly disembark (quite often literally teleporting to land) and then immediately get run down by enemy cavalry since the AI would get stuck in the "disembark" state and soldiers would stand still barely defending themselves.
Shogun 2 had many of its core problems plastered over with solid game design.
Also CI in gamedev is not nearly as common as in webdev, mainly because the state space for a videogame is far larger than for a web app. These issues are caught at playtesting and QA time, and every stakeholder involved in that process should be well aware that they are shipping a broken game.