I think that this behavior is on a safe side and good, but there needs to be a way for Org to figure out if the stuff following #+RESULTS is safe to delete..
Can be probably have #+begin_results and #+end_results instead of #+begin_example and #+end_example? And then process the begin_results/end_results elements the same as example elements?
That way, we can safely delete/overwrite the begin_results/end_results blocks.
In the above example, Org cannot know if that example block is babel generated or user-typed.
WDYT?