Also, I'm a fan of implementing features as portlets...
  - PROVIDED THAT the portal/theme/skin/etc still "works" without them (which should be a goal of this contribution);
  - SO THAT individual adopters can easily include or exclude them, replace them, use them conditionally, and govern them with permissions

Lastly, a bright-eyed, ambitious young graduate once explained very eloquently to me why it pays to "minimize the primitives."  We're already deeply committed to the best support for portlets we can possibly muster;  if we can leverage that support to get more done, faster, so much the better.