Many companies make it a policy to remove the delete rights for almost if not everyone for primary records like Accounts, Contacts, Leads, Cases, etc. A better practice is to set records to inactive status or close them as this keeps them in the database but out of the Active record views.
Behind the scene, there is a deletion service running which cleans the deleted marked records after some specified time period. So when you delete any record, that record is marked deleted and then not shown in CRM application but it is still in CRM database till deletion service executes to delete it.
Many companies make it a policy to remove the delete rights for almost if not everyone for primary records like Accounts, Contacts, Leads, Cases, etc. A better practice is to set records to inactive status or close them as this keeps them in the database but out of the Active record views.