This is an issue which cause a lot of misunderstandings, because of that I am arguing to create an official documentation about those things, The developers group and the experienced users can work together on a dummy project (shared on github) to test and find a better approach to the use of datamodels in /modules.
IMHO: It is not the best idea trying to implement more hacks to the current model system, the model_map seems a good idea, but at the same time it has a lot of "if's", I know that web2py design is to have the models, and I am not saying that it needs to be changed, leave web2py working by default as it is: models.. controllers... views. But, include in documentation an official tutorial and reference to work without the models. So it would be an option, the users will pick this option only in the cases they need, and if an user choose this option we can consider that this user knows what are doing, user knows Python, modules, classes etc... noobs, small projects would prefer to use the default approach. The natural way is using pure Python, so we should not rely on any route/map to achieve a simple goal: have objects instantiated only when w need them. I vote to start a collaborative project, so in one month we can have an defined ans tested approach, then we include this in the book, or in some web2pyslices recipe, so this kind of doubts will go away. -- Bruno Rocha [http://rochacbruno.com.br]