generally speaking adding code to the main code base requires a maintenance overhead maintainers might not be willing to accept, Also there could be disagreements about important design decisions and lemmy devs might not want certain features, it's really hard to know in advance what works best so third party extensions can help a project switch from a mode of "intelligent design" to "evolution", people just try stuff and the best stuff stays and become popular.
Also advanced features might clutter the UX , but power users could be the ones driving the popularity of the platform so that's one way to attract them.