Python eggs are not specific to Zope or Plone. However, since Zope has only recently become egg-aware, they are new to many developers.
Traditionally, almost all Zope add-on products, including Plone, have been distributed as Zope products. These are fairly easy to manage—you typically copy or symlink them into
$INSTANCE_HOME/Products. Zope will scan this directory on startup, taking care of any product initialization and registration.
However, code inside products is nearly impossible to re-use outside Zope because Zope does magic things with the
Products.* namespace. Further, the namespace quickly becomes crowded, which deters developers from breaking up functionality into smaller, more re-usable and better-isolated ...