In my recollection, roadblocks didn't really fix the walker issues.
I've had countless occasions where a walker would suddenly stop servicing a row of houses he or she could previously access just fine without any change to the layout of a "neighbourhood". This seemed to happen because the houses had gotten too big and a resource the walker was distributing to the houses did not last until the last few houses (walkers had limited stores of resources they carried, although this seemed to happen with religious walkers also who as far as I remember didn't have quantifiable stores; might be wrong). At that point the walker would have to go back to fetch more of the resource to service those last few houses. Meanwhile those houses would devolve because they didn't have any more of the resource they needed to keep their current level. Devolving houses would lose one or more levels and shed occupants. Once the walker reached them with the required resource, the houses would evolve again. Then when they ran out of the resource again they 'd also devolve again, in a vicious circle that could drive a player mad. Usually the only solution was to demolish some housing and build a service building in their place. Which messed up everything all over again.
To be fair, I observed this primarily in Emperor: Rise of the Middle Kingdom (which I played at least as much as Cesar III, but more recently since I found it on GOG a few years ago). I've only played a little bit of Pharaoh and Zeus, but if this kind of problem wasn't fixed in Emperor (which came after Pharaoh) then I'm guessing it affected Pharaoh too.
Interestingly, I observed exactly the same issue in Lethis: Path of Progress, a Cesar III clone I've played. Lethis also has roadblocks, but they don't really help, you gotta be prepared to pull some houses down and build new service buildings.
Well, the key to these games is to "not solve every problem" for the players, but only to "solve the tedious problems" for the players.
You could build very good blocks in Caesar III with consistent services. However, it meant that you couldn't have _ANY_ forks in the road at all, and that all of your blocks would be giant loops. By adding roadblocks (ie: Pharaoh), you can suddenly have as many forks in the road as you like. For different sized blocks. Expanding the kinds of "block designs" that are optimal for the game is probably a good thing. Base CaesarIII is too restrictive IMO.
--------
"Running out of resources" locally is solved through warehouse management. I'd argue that this is the "fun" part of the game. Each warehouse + marketplace only can serve as many homes / houses as they can reliably pull supplies. For something like pottery, that is:
1. Clay Pits
2. Pottery furnace
3. Warehouse
4. + Additional Warehouses throughout the city for a good distribution network. Possibly augmented with foreign trade / docks.
5. Marketplaces
6. The final delivery to the house.
Yes, the Marketplaces, and even warehouses, have limited "throughput" and can only serve a finite number of houses. After that, you must expand by building "parallel marketplaces". Eventually, you build too many marketplaces and the Warehouse cart-pusher is overloaded with work, so you need additional warehouses to expand that bottleneck. Etc. etc.
IE: This problem is "reserved for the player to solve". The game shouldn't solve it for you, otherwise it wouldn't be a game anymore. Deciding "which bits" of the game to solve vs leave to the player to solve is the fundamental question of game design: what is fun anyway?
You're saying it's part of the challenge to build an efficient neihgbourhood, and I agree but it detracts from the charm of the game to see a neighbourhood oscillating wildly between house levels. At that point, for me anyway, the game's behaviour goes beyond "a challenge" to "an annoyance".
Now that I remember it, my solution was rather to keep some neighbourhoods deliberately low-level so that my city had enough working hands, even if some of them weren't living in luxury. It meant I could keep their houses provisioned much more easily to stay at a middle level, even if I had to build more of them. So I created an underclass, in short. In Emperor, the distinction between citizen class was part of the rules of the game.
Another solution is to do more or less what you and ufo below say: break up the city in small enough blocks with enough close-by service buildings that they won't run out. But that takes up a lot of space and the need for warehouses in close proximity tends to depress the land value of plots, which again hampers development. But that's OK, I agree that overcoming that sort of challenge is part of the fun of the game. Although I mainly played those games because I loved seeing a pretty ancient city filled with simulated people going about their life run on my machine :)
If you like that sort of challenge in a game (where to place distinct production units in a predetermined space with limited options) then you might enjoy the game Slipways:
Nothing to do with ancient cities, or city building, but for me at least it scratches the same itch of micromanaging as playing Cesar III sometimes did.
In my experience, the biggest source of "random" glitches were the entertainment walkers. Because of a bug, sometimes the dancers would teleport and wonder off outside of the block. Lack of bazaar goods can also be a problem, specially if you have 1x1 houses because those run out of supplies faster than 2x2 houses. For 2x2 houses they need a bazaar visit twice a year, which matches the period in the random walker algorithm. However, for 1x1 houses that might not be enough; I suggest building an extra bazaar to be safe. Religion & water walkers don't spend resources. Education walkers consume papyrus every time they leave their building. If they're out of papyrus they don't go to work.
Right, I thought I might be misremembering the need for resources of religious workers, thanks.
The markets always tend to be a little unwieldy. It's easy to run out of space to place a maker far enough from housing to not depress its value, on smaller maps or ragged terrain with lots of rivers etc. So you gotta manage carefully.
One funny thing about bazaars is that they decrease desirability for adjacent houses but increase desirability for houses that are 3-6 tiles away. A good strategy is to build them close to the houses, but surrounded by other service buildings.
I've had countless occasions where a walker would suddenly stop servicing a row of houses he or she could previously access just fine without any change to the layout of a "neighbourhood". This seemed to happen because the houses had gotten too big and a resource the walker was distributing to the houses did not last until the last few houses (walkers had limited stores of resources they carried, although this seemed to happen with religious walkers also who as far as I remember didn't have quantifiable stores; might be wrong). At that point the walker would have to go back to fetch more of the resource to service those last few houses. Meanwhile those houses would devolve because they didn't have any more of the resource they needed to keep their current level. Devolving houses would lose one or more levels and shed occupants. Once the walker reached them with the required resource, the houses would evolve again. Then when they ran out of the resource again they 'd also devolve again, in a vicious circle that could drive a player mad. Usually the only solution was to demolish some housing and build a service building in their place. Which messed up everything all over again.
To be fair, I observed this primarily in Emperor: Rise of the Middle Kingdom (which I played at least as much as Cesar III, but more recently since I found it on GOG a few years ago). I've only played a little bit of Pharaoh and Zeus, but if this kind of problem wasn't fixed in Emperor (which came after Pharaoh) then I'm guessing it affected Pharaoh too.
Interestingly, I observed exactly the same issue in Lethis: Path of Progress, a Cesar III clone I've played. Lethis also has roadblocks, but they don't really help, you gotta be prepared to pull some houses down and build new service buildings.