Martin There is always the concern of the extension not getting updated and not working with future versions, whereas built in features or extensions don't carry those same concerns.
To the contrary.
Let's assume, a team of core developers has limited ressources in terms of time dedicated to a project. Let's have a look at the two models of programming at hand:
A) The core developers decide for a set of functionalities they deem neccessary and include them in the core software. To save some time, they decide not to provide an extension mechanism.
B) The core developers concentrate at the absolute bare bones, leaving out private messages, an editor, yes even sub forums, but at the same time providing a powerful extension mechanism for everyone interested to jump in and add what they miss.
Model B) doesn't guarantee all the features, that the developers might think of, but at any time they are free to step in and provide those extensions themselves. Many extensions however will be provided by others already, so that the developers can use the saved time to advance with the core.
Admitted, the extension mechanism itself needs to be programmed, but looking at the architecture of flarum, you can see that even the core uses several external packages, so that a mechanism to incorporate external sources is already baked into the software. So why not use it for extension programming?
The whole project has better chances to proceed faster and be successful with model B than with model A.