Ese es el problema: "Solo hay que recordar liberarla". Eso es "mentira" y lo pongo entre comillas porque si y no. Me explico: el problema de utilizar punteros no es solo el recordar liberar la memoria sino que si en una función creas un puntero y surge algún tipo de error que envie una excepción, y que el delete se encuentra en esa misma función, va a haber una fuga de memoria.
Es cierto que puedes atrapar la excepción con un try{}, catch{} y liberar la memoria pero pueden surgir una enorme cantidad de problemas e intentar predecirlos todos no es precisamente fácil
Como digo, hay que recordar liberarla. No liberarla en caso de excepción, es no recordar liberarla en una posible ruta del código xD
Temer a la memoria es absurdo. La memoria es parte necesaria del programa, que se usa constantemente. Creo que lo mejor que puede hacer un programador, es aprender C o ASM. Aprender lo que es la memoria. Aprender a tratarla. Aprender que es algo corriente, y aprender que hay que tener cuidado con ella. Es todo.