As usual, there's more to it than I first imagined!
To overcome the issue of routes being overwritten with an update, could
there be a routes_default.py that ships with Web2py and can be overridden by
routes.py in the same directory? Not super important.
I envision something like (pseudocode):
In /web2py/routes.py:
default_app = 'init', 'welcome' # try init first, then welcome
default_controller = 'default'
default_function = 'index'
if exists(applications/*/routes.py)
use(applications/*/routes.py) # would override default
controller/function
But I guess hard-coding default routing in core can protect against
accidents.
Domain-based routing does sound like it would be a good feature.
Do I understand correctly that regex and non-regex routing cannot be used at
same time? I'm guessing that's going to be a requested feature.