This can happen if you accidentally switch to the bare workflow e.g. by running npx expo run:android or npx expo prebuild which will generate the android and/or ios directories. At this point you have a bare project, most things in app.json will be ignored and if you want to change the icon/splash screen, you would need to do it in the native projects directly.
Assuming you did not intend to switch to the bare workflow, you can switch back to the managed workflow.
That’s of course “prebuild” Also with Expo SDK 46 and later you should rather use npx expo ... so that it executes the CLI from the version of the expo package installed in your app rather than the global expo-cli.
The eas command doesn’t need to be run as npx eas ... because that should only be installed globally.
Unfortunately no. These sorts of changes require rebuilding the app. If you don’t like that, complain to Google and Apple
You could set up a GitHub action to build a new development client whenever you make a change to app.json, although you’d still need to manually install it on your device/emulator.
No, this is not true. If you run eas build --profile development -p android you will get a .apk that you can install on the Android Emulator. Then you can run npx expo start --dev-client