São poucos os cenários onde um registro realmente precisa ser deletado. Vamos levar os seguintes motivos em consideração.

1- Em bancos SQL, dependendo da tabela você precisa reordenar indices. Dependendo do tamanho da tabela isso pode ser devagar. 2- Você pode querer restituir algo que foi deletado. (Imagina que vc deletou um email no GMAIL e ele te dá 30 dias para restaurar da 'lixeira'). Essa funcionalidade depende de um soft delete 3- Você perder a capacidade de Data analytics em cima dos seus dados. Quer descobrir porque algo está sendo deletado? O que leva um usuário a fazer isso? Precisa do soft delete para isso 4- Impede auditoria. As vezes você precisa do histórico das coisas para fazer auditoria 5- O custo é baixo. Uma coluna com true or false é muito barato de se ter. Mesmo com milhares de registros. 6- ... a lista vai

A menos que por questão de LGPD ou outras legislações, eu sempre trabalharia com soft delete sempre que possível