ViewPager с фрагментами, жизненные циклы?
Используйте код из сэмпла в доках. Не храните ссылки на фрагменты в адаптере.

Чтобы фрагмент не пересоздавался можно вызывать метод setRetainInstance(true)

Если вам нужно находить фрагмент по тэгу, то и создать его можно со своим тэгом с помощью класса FragmentTransaction.
В случае с ViewPager, FragmentPagerAdapter назначает фрагментам свои тэги, это можно увидеть в его исходниках.
Там метод makeFragmentName(int viewId, long id) назначает фрагментам тэги вида:

 private static String makeFragmentName(int viewId, long id) {
        return "android:switcher:" + viewId + ":" + id;
    }

где viewId — id ViewPagera, id — позиция фрагмента. 
Соответственно, по этим тэгам можно брать фрагменты из ViewPagera
То есть можно на выбор — либо сохранять в MainActivity теги созданных фрагментов и в адаптере в getItem() делать findFragmentByTag(), либо в том же getItem() получать каждый раз фрагменты с помощью Fragment.instantiate() и устанавливать для них setRetainInstance(true)? Я правильно понимаю? Если так, то как лучше делать?