Тоже интересный вопрос - что вешать на язык/компилятор.

Есть проверки "первого рода" - это то, что есть вероятность нарушить неосознанно (допустить ошибку по невнимательности). Очень важно это проверять. Особенно, если вероятность ошибки высока, а искать трудно (как порча памяти. А уже инициализация переменных даёт ошибку в логике, при этом легко обнаружимую; поэтому на весах "ранее обнаружение | эффективность" у Вирта перевесило второе).
Есть проверки "второго рода" - того, что неосознанно сделать неправильно никак нельзя. Нельзя неосознанно, из-за "усталости", сделать функцию с побочным эффектом... Поэтому это уже не столь критично. Хотя со временем эволюция. видимо, будет в сторону введения подобных правил в язык. Как и, например, индентации (что Info21 включил в школьную сборку).