Это определение языка.
Язык утверждает, что переменные в METHOD-scope ДОЛЖНЫ инициализироваться вручную - если вы хотите, чтобы они начинались с NULL, вы должны явно сказать об этом - если вы не сделаете этого, они будут в основном в неопределенном состоянии.
В противоположность этому, в языке говорится, что переменные CLASS-scope не нужно инициализировать вручную - неудача их инициализации приводит к их автоматической инициализации в NULL - поэтому вам не нужно об этом беспокоиться.
Что касается разницы между двумя состояниями (null и undefined), да, они в основном одинаковы - но язык диктует, что вам нужно инициализировать переменную (независимо от того, делается это автоматически или нет, в зависимости от область действия переменной).