I would like the model user interface let the user select a tool (or submodel) from among a list.
Is it possible to prepare such a model using ModelBuilder without having to write a python script?
I think the most practical way to do this is to use a Standard Toolbox (
*.tbx) as your "model user interface".
That way your models (and submodels, which are really just models that can be optionally within another model) can be model tools listed in your toolbox.
If you want to get a pick list instead then you are looking at a much more complex application that probably uses a Python AddIn to choose and run imported model tools. That coding pattern would be similar to https://gis.stackexchange.com/a/127895/115 except that it would use model tools in a Standard Toolbox rather than Python Toolbox tools.
You could create the models (or if they already exist) and store them in one network directory. Then have users add a folder connection to the network directory in ArcCatalog. Then the models would be listed.
Otherwise I don't think what you are trying to do is possible using ModelBuilder.