I can't think of one time I've ever intentionally used the overwrite functionality either.
I don't use vi for coding, just quick file edits on the console. I was xemacs for a very long time in college and thereafter - to the point of writing elisp to manipulate xml files, but eventually my Java day job pushed me towards a full IDE. Java is kinda unbearable without it.
I still occasionally turn to emacs for a few things I can't get elsewhere (editing binaries, large files, and doing search and replace in a narrowed buffer), but it's no longer my primary editor or mail reader. I may pick it up again for clojure coding, though.