Żeby odzyskiwać dane, one muszą istnieć. Nie damy rady odzyskać czegoś, czego fizycznie nie ma, bo zostało skasowane/nadpisane. Jak rozwiązanie programowe miałoby chronić dane, które będziemy chcieli potem odzyskać? Skąd program miałby wiedzieć, czy do tego, co usuwamy będziemy chcieli kiedyś wrócić, czy nie? Są kosze systemowe i kopie zapasowe...i trudno wymyslić coś mądrzejszego, tym bardziej, że są sytuacje, kiedy naszym celem jest usunięcie danych właśnie w taki sposób, żeby nikt ich nie odzyskał.
Poza tym zawsze pracujemy w warunkach ograniczonej pojemności nośników - one po prostu nie są w stanie przechowywać nieskończonej ilości danych, a w przypadku telefonów mamy do czynienia z pamięciami relatywnie małymi w stosunku do potrzeb.