I agree with all of this, and I do think we should document how users can use IPython profiles and `sitecustomize` to set their own defaults.  While I agree this is problematic I think users should be allowed the option, along with a strong admonition that any code they write set these values manually.

It might behoove us to include some sort of `astropy.reset_science_defaults()` that can be called at the beginning of a script to set any options back to their defaults before making manual tweaks.  Such a feature should only be used for application code, however.  Libraries should be encouraged to use the context managers (a function decorator could also be useful).  Otherwise different libraries could interfere with each other if they all try to tweak Astropy's global state.