As far as I can understand, the only difference between the bare template (created by expo init) and react-native init app is the existence of ‘react-native-unimodules’?
Expo init bare template comes with ‘react-native-unimodules’ whereas react-native init doesn’t. Are there any other differences?
I cannot use any of expo commands such as expo build, expo start, or use expo-app client when developing. Am I right?
I don’t seem to find more explanation about what bareworkflow can do and cannot do compared to the managed workflow (other than complete control).
In short—a lot of hard things are handled for you in the managed workflow. But there are good reasons to go with a bare app, like you say complete control.
React native inits will not automatically let you use Expo components. That might be a good or a bad thing, depending on if you want to use Expo components.
You can still use Expo stuff in a React-native CLI init, but it will require that you install and configure those components yourself.
Both have the full power and complexity of regular React Native apps.
Anything you can do with React native CLI init you should be able to do with Expo init. The expo init is more convenient if you want to use the expo components.