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.