Il memory leak di per se non e' grave, ma SOLO SE CONTROLLATO E CONOSCIUTO.
Ma questa situazione e' MOOOOOLTO specifica, ne senso che ci sono pochissime situazioni in cui puo' essere tollerato.
Ad esempio, un'applicazione parte, alloca in memoria una struttura dati molto complessa, fa quello che deve fare, e termina. In questo SPECIFICO caso, il memory leak potrebbe anche essere tollerato, perche' fondamentalmente, rilasciare la memoria, per poi terminare, e' un'operazione che puo' essere tralasciata, tanto lo fa direttamente il SO.
In generale, invece, i memory leak SONO FONTE DI ROGNE rognose, la principale delle quali e' il crash dell'applicazione per OUT OF MEMORY: cioe' l'applicazione ha allocato tutta la memoria disponibile e non e' in grado di continuare.
Trovare il problema, in queste situazione e', letteralmente, un bagno di sangue perche' spesso l'applicazione non schianta dicendo OUT OF MEMORY, ma per tutti altri strani motivi. Proprio la presenza di questi strani motivi e' un segnale del memory leak.
Naturalmente, quando l'applicazione schianta.
Perche' potrebbe fare anche di peggio, come, ad esempio, congelare la macchina, non rendendola piu' accessibile. E se la macchina e' remota ed amministrata via terminale (situazione normale nei centri di calcol, nelle banche, eccc), questo vuol dire chiamare un sistemista che deve prendere l'automobile e spostarsi dall'azienda alla palazzina in cui si trova la sala macchine, per fermare e riavvirare la macchina manualmente.
Questo, per applicazioni che devono funzionare senza interruzione 24/24 e 7/7, evidentemente non e' accettabile. Anche perche' il memory leak potrebbe rendere l'applicazione inutilizzabile nell'arco di pochi minuti (il che sarebbe pure una situazione ottima, perche' semplificherebbe il debugging), oppure, mooolto peggio, dopo ore o giorni. Ed in questo caso, identificare dove si trova il problema, potrebbe essere decisamente complicato.