Isn't it like using a variable without declaring that is what you are expecting? And why null checks should be treated specially? From the perspective of script validation, I think what is happening is logical.
I can imagine scenarios where the current behaviour can create problem. When the variables are passed from some other class, it will not send a property which that class does not have. In such a case the default value of the variable should be considered.
I would wish to have a feature to declare variables at the process definition scope and assign some default value to it. So if we do not have the variable at the runtime, the execution can move on with the declared default value.