You can lazy load your route implementations
I've never attempted lazy loading inside a Faas platform but I think generally you would be better off creating small deployable chunks and letting the platform handle scaling them up / reusing as necessary. Less fighting against the platform and if you have to maintain strict boundaries to enable lazy loading only the needed code for each route it's a short step to deploying those as their own functions anyway.
I don't know what PaaS you've used, but at least with Google Cloud Functions, you can do a minimum number of instances. Set it to 1 and you never have cold start issues.
There is a middle ground that will be much faster and cheaper all around.
It all kind of works while the fanout is low, but these systems have such long feedback loops that the team doesn't really learn how to avoid the degenerate cases and the whole thing limps along. The system isn't just allowing emergent behavior, it depends on it. Which is a special kind of insanity I've never been comfortable around.
Really, just write some code that does exactly what it says it does. It seems remedial at first but once you get going you start finding ways to add features that were difficult before and it all comes out in the wash.