When Expo works like it should it's like the best dev experience ever. Supporting all React Native 3rd party components without ejecting and ditching the Expo app will be a huge step forward.
Expo is great for prototyping and small apps with limited scope. However anything bigger and expo just doesn’t work. At some point you will need to mess with the native side of thing, most of the time to initialize things like Firebase or adding a lib with a bridge. When you have to make native changes, no matter how small, Expo will get majorly in the way
Honestly I think you'd be surprised just how far the managed workflow can get you these days. That being said, Expo is aware of the limitations and is actively working on addressing those.[1]
It's too limiting right now. When the Expo team finishes the "Expo Application Services" it will be an option for almost every project. For now, it's limited to just the Expo APIs and for most projects you will ultimately end up ejecting.
Isn't the apk size much larger if you use Expo? Or is that not the case anymore?
With the EAS Build system, it's no longer a concern. Available to paying customers at the moment.