На express свет клином не сошелся, но он, как любой другой фреймворк, решает типовые задачи и позволяет организовать код. ЕМНИП, там всего-то 900 строк кода — не такой оверхед, чтоб было из-за чего сыр-бор поднимать.
Если правильно разбивать код, то потом перенести его на проект без фреймворка (читай: на проект с кастомным фреймворком) можно будет без проблем.
Доходило до того, что люди на форумах писали мол: "Та node без экспресса на*уй не нужен, зачем оно тогда надо вообще?!".
Следуя логике таких товарищей, на пыхе делать нечего без симфони, на питоне без джанги, а на руби без рельс. Ну-ну.