Кешировать надо. Пользователь может уйти из приложения кнопкой home, и вернуться спустя несколько часов где-нибудь в метро, где нет интеренета, и тогда без кеширования ваше приложение будет бесполещно. Ну и это странно перезагружать данные которые уже были загружены однажды.
Для первого фрагмента вызывается onDestroyView(), потом onCreateView() и RecyclerView заполняется заново.
Он не сам заполняется, вы его заполняете. Ссылку на созданный адаптер(с загруженными данными) можно хранить в фрагменте. И в методе onCreateView использовать снова этот адаптер.