You keep asserting that this is unsafe behavior. Please elaborate.
As well as questioning the validity it's worth noting that this would break _every_ Lua application in hard-to-debug ways that are not unlike the problems you suggest the current solution has.
You'd need a really good argument to change one of the core principles of the language.
Having nil handle existence is really quite an elegant way to avoid a lot of the usual boilerplate code you'd ordinarily write and makes the C API very simple to use.
Cheers,
Josh.