Don't put code in __init__.py files. Imports, sys.modules mangling, deprecation warnings - all fine. But real functionality? Blah... I never look at __init__.py files and I wouldn't expect anyone else to do it in my own code. In 994 years they may even become less important.
Secondly - and relatedly, think ahead. If you have only one view now but you may need ten in a week's time, don't create a browser.py for the 'browser' module (which, by Zope 3 convention, is where your browser views and resources tend to live). First of all, you may need a template, which lives best in browser/template.pt. Secondly, most applications or products have several views, and having tons of classes defined in one ever-growing browser.py is a pain. At some point, you'll refactor them into sub-files and get into an import jungle.
Of course, if you're creating something that by definition should have only one view (i.e. a piece of infrastructure), then great - dont' clutter it up with unnecessary directories. But if you're building something at the Plone level, like a set of content types, they'll probably have more than one view, and creating a directory isn't going to kill you.
Oh - and thirdly.... we shouldn't have called the file for the @@plone view plone.py. Why? Because we now want to have namespaces like plone.portlets. That leads to things like this:
IPortletManager = sys.modules['plone.portlets.interfaces'].IPortletManagerCan you figure out why this wouldn't work?
IPortletManagerRenderer = sys.modules['plone.portlets.interfaces'].IPortletManagerRenderer
from plone.portlets.interfaces import IPortletManagerPython 2.5 is rumoured to have relative imports ala ZCML which may make this better, but it won't solve all problems.
Ah, I feel all better now.