My idea was that the currently unsupported combination of NOT NULL and no DEFAULT would mean "has to be assigned to a non-NULL value before it can be read from, or an exception is thrown". Solves the most common use case and is backwards compatible.
That won't allow you to use a variable in multiple places though... is there a reason we couldn't support something like IS DEFINED and UNSET?
I don't understand what your use case is. Could you demonstrate that with some code you'd write if these features were in?