I am ok raising an exception, but wanted to present the counter arguments.

Say a user creates a themed ggplot object and doesn't like the theme. It should be easy to try a new theme.  They could go back an recreate the ggplot without a theme, but it would be easier to overwrite the existing theme. Also the the complete themes all have the form ```theme_<something>()```, so it should be more obvious that adding a complete theme is a reset.

```
gg = ggplot(...) + theme_mpl(...)
print(gg)
# yuck, I don't like that theme

print(gg + theme_grey())
# raise an exception or plot with theme_grey?
```
Less important, it looks like ggplot2 will overwrite the existing theme when a complete theme is added. This is based on my reading of the code. Not that familiar with R, so I could be wrong.

The code is easy either way, let me know.