И в целом фреймворки нужны для того чтобы задавать некую структуру проекта, определять интерфейсы взаимодействия частей вашего сервера. Если есть достаточно знаний и понимания как все должно работать можно писать свое на чистом хттп и в итоге прийти к какому-то своему фреймворку.
Но по сути будь то ваш личный, будь то какой-то фреймворк из нпм-а должен помогать вам отделять бизнес-логику, обработку запроса и доступ к данным. Но в случае експреса он, как и многие туториалы по нему, наоборот, поощряет лепить все в кучу.
Поэтому то как построен експрес и то как он реализован внутри подталкивает неокрепшие умы юных девелоперов преумножать говнокод. И вышеупомянутая жесть в коде может быть частично спровоцированна именно использованием експреса.