I'm in the midst of a project using turbogears. I do distribute my application as several separate eggs, split on the major fault-lines in the concepts. i.e. a datalayer, management, shop, plugins, migration etc. It has been hugely beneficial to do this because of the aforementioned decoupling. Also because it enables decoupled updates to components with reduced risk to the whole.