We are setting up a new Civi database, and I got an "already exists" error when trying to import a bunch of new contacts with external IDs. I eventually figured out that the External ID already existed in deleted (in Trash) contacts that I had imported as a test run. There could be a more helpful error message, though I wonder if the external IDs sitting in the Trash could be freed up to use again. I understand that there is the possibility of undeleting the contacts, but perhaps the violation of the existing External ID could be raised on undelete instead of import (with the option to undelete with no or a new external ID).
I also discovered that I can't permanently delete contacts that have any financial transaction connected to them. There may be a good reason for this, but a warning message, along with an option to "Delete this contact and all associated financial transactions" would be appreciated!