Exactly, there are two separate issues and the core topic of this post is to avoid any unnecessary reloading of the view.
I don’t follow this point, what do you mean temporarily detach/reattach of the fragment? If the view is being destroyed onDestroyView() is called then onDestroy() and at the end onDetach(), and in this case it is advised to do the cleanup of the view, which we are doing in onDestroyView(). So, if the view is recreated we have to make a new call to get the data from dataSource/dataLayer (which could be like cache->DB->network).
Are you advising to convert all Observables to “hot” observables? it is not a good practice. Hot observables are to be used when multiple views are using the same observable for getting a more common information regardless of the previous information emitted by it, e.g. current network state. In this case it does not make sense to convert a cold observable to hot one.