title: Is using Fragment's setRetainInstance(true) really a good practice to handle rotation change
body: <p>I'm referring to <a href="https://stackoverflow.com/questions/11160412/why-use-fragmentsetretaininstanceboolean">Why use Fragment#setRetainInstance(boolean)?</a></p>
  
  <p>The reason I ask so is for <code>Activity</code> to handle rotation, <a href="http://developer.android.com/guide/topics/manifest/activity-element.html#config" rel="noreferrer">Official Activity Documentation</a> encourages us to let <code>Activity</code> shut-down and restart during rotation.</p>
  
  <blockquote>
    <p>android:configChanges Lists configuration changes that the activity
    will handle itself. When a configuration change occurs at runtime, the
    activity is shut down and restarted by default, but declaring a
    configuration with this attribute will prevent the activity from being
    restarted. Instead, the activity remains running and its
    onConfigurationChanged() method is called. Note: Using this attribute
    should be avoided and used only as a last-resort. Please read Handling
    Runtime Changes for more information about how to properly handle a
    restart due to a configuration change.</p>
  </blockquote>
  
  <p>Any attempt to change this Activity default behavior seems to be bad practice. To avoid Activity from reloading time consuming data structure during restarting, we make make use of <code>onRetainNonConfigurationInstance</code> and <code>getLastNonConfigurationInstance</code>. - <a href="http://developer.android.com/guide/topics/resources/runtime-changes.html" rel="noreferrer">Official Handling Runtime Changes</a></p>
  
  <p>However, when comes to handling rotation in Fragment, does Google give us different recommendation? They do not want us to shut down and restart Fragment?</p>
  
  <p><a href="http://developer.android.com/reference/android/app/Activity.html#onRetainNonConfigurationInstance%28%29" rel="noreferrer">public Object onRetainNonConfigurationInstance ()</a></p>
  
  <blockquote>
    <p>This method was deprecated in API level 13. Use the new Fragment API
    setRetainInstance(boolean) instead; this is also available on older
    platforms through the Android compatibility package.</p>
  </blockquote>
  
  <ol>
  <li>Why does Google encourage us to shut down and restart Activity during rotation, but encourage us to retain Fragment during rotation? </li>
  <li>If <code>setRetainInstance(true)</code> is good in handling rotation, why don't Google make it as Fragment's default behavior?</li>
  </ol>