I'm actually becoming convinced that the right approach is pretty much the opposite and we should be making GUIs that are composable.
If you think about it, no one knows the user's use case better than they themselves do. So who is in a better position to determine what functionality is most important to have on their tiny phone screen? Which components need to be bigger and more prominent or smaller and less prominent according to their workflow? Etc.
In other words, the GUI isn't optimized for anything by the developer, but the user can make it optimal for themselves.