I just wanted to update this for anyone that follows this conversation with the same problems.
You are absolutely right, and experience has led me to that exact path. Express has been a powerful entry point for us, but we are removing it in favor of doing the routing with serverless. We now even have multiple services sharing resources so modularity is key.
We have services that are specific for creating resources, and several APIs services which are modelled as a set of Lambdas (one accessing each resource as you suggest). Shared libraries are a must for reducing boilerplate code and improve reusability for example when accessing and modelling the data layer.
However this approach is very new and there aren´t many examples and/or good practices out there, just tiny bits of advice… I could really use an opinionated example on how people are organising big projects…
I´m currently struggling with my CI/CD pipeline, I could really use a monorepo for all my services 