"""Part of the difficulty of CherryPaste is that CherryPy expects to have control of the process, and expects all CherryPy applications to register themselves centrally"""
Yep, and while WSGI doesn't explicitly forbid them doing that, it is a rather problematic design flaw from an interoperability perspective. It prevents a web server from deploying independent CherryPy-based applications in the same process at user-defined locations, on different ports, etc. It also makes applying middleware extremely complex. The only reason WSGI doesn't warn against such bizarre behavior is that it never occurred to me that anybody would make a framework with such a peculiar limitation; had I known that it existed, I'd have included should statements to cover it. (E.g., "a framework or application should support creation of independent application objects for use within a given process, to allow deployers to serve multiple instances from the same process, even if single-threaded. Applications should not use global variables whose state is maintained across requests, since this would interfere with creation of multiple application instances.")