I think you have got 1. slightly wrong.

The point is not that the core (foundation) of the software is small, clean, etc. I am a Moodle developer, and the core of Moodle is big and messy. However, Moodle still has a thriving community developing plug-ins. http://moodle.org/mod/data/view.php?id=6009

The key point is that it is possible to develop new features just be writing plug-ins that plug into the core API. The way Firefox has add-ons, and Drupal and WordPress have modules is similarly key to those projects’ success. And, it is not just the technical architecture to do this. It is important also to have a place where developers can easily share what they have done, and other users can find and download the add-ons.

I am not sure that 3. is so important once developers can do most of what they want with plugins, rather than having to change the core. Most innovation happens in plugins, and the main decision for the project is what gets packaged together in the standard distribution. Here, you don’t even need a single decision making authority. Look at all the different Linux distributions. In the Moodle world, a group has just got together to produce TotaraLMS, which is different packaging of Moodle core + plug-ins aimed at business users.

For the project can lower risk. There is no need to say “we need to redevelop the forum or the wiki tool”. Instead a new tool can be made as a plug-in, and some users can use it for real and shape development. When it is good enough, it can be swapped into the main distribution.

4. Is key.