The rest of the web2py framework is excellent, and support is very good. I wish Massimo had spent some of the time he spent adapting web2py to other frameworks on adapting web2py to SQLAlchemy instead. I'd be back in a second.
Which parts? IMO, the web2py framework is not excellent.
It sounds like you hit some limitations with the DAL and switched away, but those type of limitations are peppered throughout the framework.
Web2py is not well designed, not standard python (look at the source), and it tricks newbies into bad practices.
The DAL can be used to model any set of tables and relationships that can be created in an RDBMS, so it's not clear what the problem would be modeling the relationships among these entities. Should be fairly straightforward.
Sure. I have used web2py for small projects, and have used Flask and Django heavily. I like Flask because it doesn't try to be everything and allows you to build your application by assembling a set of components. Well, all applications are built that way, but my point is Flask doesn't even try to provide the ORM or templating engine.
What it does is let you to choose your components, and build over the base framework. Also, it comes with a set of recommended components which are wrapped for making it natural for use in Flask.
I have tried almost all python frameworks in some capacity, and Jinja2 is a clear winner for me among all the templating options. It's fast, concise, and doesn't tell me I am an idiot and therefore I am not allowed to have code in my template - it advises against it, yes, but doesn't go out of its way to prevent me from doing it.
Raw sqlalchemy is verbose, but declarative extension solves that issue, and you can always wrap it to make it more natural. Flask-SQLAlchemy integrates nicely with Flask, and you have an option to access sqlalchemy session directly.
Learning something from different tools is good, but ultimately we need to decide upon a set of tools for a given problem.