That way, extra functionality can implemented through plugins, rather than trying to cram it all into the core.
That way, you keep the application as simple, as lightweight, and as bloat-free as possible - users can bring in any extra features they want via plugins (which are developed according against a more structured system), and leave out the ones they don't want or won't use.
Combine this with a central plugin DB with version and compatibility controls and this would be killer.