You only have to serve a 200 and the index for valid routes to have frontend routing working.
The complaint is serving a 200 for invalid routes, which breaks all kinds of things and violates web standards.
Indeed, for a cost-effective approach with a static host, why not generate placeholder HTML files for all valid routes at compile time? Alternatively, using Astro or a similar tool would be a wise choice :)
This isn’t really feasible, think about how dynamic routes can be? Can you generate a route for every ID of a thing?
I have actually seen this approach for SSG. You define a function to get all IDs, then the framework renders all of the pages using those.
Well you could plausibly do this with nano-web, simply disable SPA_MODE and generate your routes in this manner.