Города были окружены стенами - от нападения врагов. Поскольку стены мешали городу расти вширь, улицы делались крайне узкими (по закону — «не шире длины копья»).
Вероятно, это было полезно на случай взятия города вражьим войском. Кроме того, средневековые города обычно окружались стеной, тем самым сильно ограничивая возможности для расширения города: понятно, что народ стремился селиться внутри стены.
Элементарно, Ватсон!
В случае прорыва обороны городских ворот, вражеская конница стремилась быстро продвинуться вглубь города и захватить стратегически важные пункты, что бы лишить защитников возможности перебрасывать подкрепления по кратчайшим путям. А узкие улицы затрудняли продвижение конницы и давали защитникам шанс перестроиться и ликвидировать прорыв.
Ну и стремление построить максимальное количество строений на ограниченной площади, конечно. Тут требование "на длину копья" ограничивало стремление горожан увеличить собственный дом за счет улицы.
Это в тесной Европе, где под защиту крепостных стен пытались вместить как можно больше. В деревянной России из за боязни пожаров улицы были гораздо шире, зато сами крепости (Кремли, Детинцы ) были поэтому гораздо больше по размерам или их было несколько рядов. В Москве, например был Китай город, и укрепления по Бульварному и Садовому кольцу, или город нередко имел еще несколько укреплений (обычно монастырей) , правда из за деревянной постройки большинство Русских городов сохранились хуже европейских, а жаль, они в большинстве были гораздо больше европейских.