Это не тупость, человек аналогию делает с работой движка, а движок, если там нет = null, выдаст иксепшин, потому что нуллейбл не равно дефолт нулл
Человек, вызывая Injector::invoke ожидает, что Injector разрулит все зависимости. А те, что не разрулит или надо заменить, человек подставляет сам.
Такой человек, как я, будет ожидать, что будет подставлен null, если других вариантов нет. Какие тут иные аналогии провести - хз. Не рассматривай этот null как дефолтное значение. Это одно из возможных значений, причём менее приоритетное