Bei der Sache mit "nicht initialisierte Rückgabewerte" ist es kein Fehler. Sie sind ja initialisiert und haben nicht einen zufälligen Inhalt.
Das ist aus Sicht des Compilers sicher richtig. Für den Entwickler ist das aber nicht direkt ersichtlich. Andererseits, wer programmiert sollte schon wissen was er tut.