Apps should do one thing REALLY well.
Which means apps must work well together.
Private key security is paramount, so there should be a dedicated app for that. Copying private keys into many apps is bound to bring problems.
Loading time is a crucial UX hurdle, and so data should be pre processed in a dedicated relay app, so that other clients don't need to make privacy degrading online queries.
With such a setup it might be possible to run useful nostr apps that don't even have internet access, but get everything from the local network.