Personally I think the selection matrix is too huge, so instead of trying to classify everything, we can just have some
flexible way of extending wizard so each vendor will use what is applicable for them. Generically speaking everything is
a template, so user can pick one of the project templates (in most generic sense) then move to the next page of the wizard where
he can pick more specialized templates of this type, and so on. For out of the box cdt/toolchain (such as wascana) first level choices can be "New Application", "New Library", "Existing Source", then second level for library would be something like "Static", "Shared", "Custom Makefile" etc.
But if we add tools for mobile development, first level for example can become "Desktop" and "Mobile".
Most of the other choices have to be deducted from template, for example when creating project from existing source user have
to choose project location outside of workspace, but when user creates "Desktop Application" -> "Hello World C++" we assume it is managed AND it is located in workspace, so we won't ask anything else. Of cause there will be some "I will configure everything myself" template for whatever we did not consider.