Почему так категорично?

Давай порассуждаем.
Назначение конструктора - инициализация внутренних структур данных класса.
Если мы создаем наследника - значит, мы ожидаем, что он будет пользоваться данными предка.
Если мы не вызываем конструктор предка значит мы допускаем потенциальную возможность, что класс-наследник обратится к неициализированным данным предка, что может быть большой проблемой.
Решения, которые я вижу:
1) Вызывать конструктор предка.
2) Выносить переменные, которые не должны использоваться наследниками в отдельные классы (или скрывать их каким-то другим способом, если это позволяет делать язык разработки).