Well, because FreeFlarum uses Alpine, let me share my thoughts:
In my opinion, Alpine is a great library for projects that do not need to be very extensible. I chose it for FreeFlarum because I needed a way on how to render the frontend from the FreeFlarum's API (without making the backend deal with it, and have duplicate and redundant code, etc...). With FreeFlarum, it just works, because FreeFlarum doesn't care about extensibility at all. It is a great library with a lot of potential. But...
It's not just the end customer that must be able to customize the components, it's dozens of extensions that will all modify the same areas and must be able to do so while maintaining compatibility with each other.
100 % agree. As was said, Alpine is great and I do not mean to disagree with that (after all, I use it myself). However, I too think that if there were many extensions who share the same HTML document, stuff would quickly break. Ensuring compatibility between many different Alpine components can be tricky at times (normally, you don't need more than 2 components per page in Alpine - I assume that Flarum has a few dozen, once you have a lot of extensions enabled?). And I would personally strongly disprefer rewriting a system that is already widely adapted in the current extension ecosystem and works, at the cost of extension compatibility and possibly the stability of the DOM.
In programming, sometimes cons just outweight the pros of a specific alternative, and you have to go down the route that might seem less sympathetic - but in the end, you sometimes realize that it is indeed the better solution (source: happens to me all the time)