the error when trying to index a null value is a good thing.
Let's assume the statement
v = t[a][b][c][d][e]
Each of 5 indexing steps might result in nil.
Sometimes you want to raise "Attempt to index a nil value" exception,
sometimes you want to ignore the exception.
If nil is indexable, then it's pretty easy to raise the exception
v = assert(t[a][b][c][d])[e]
But if nil is non-indexable, it's not easy to ignore the exception
v = (((((t or {})[a] or {})[b] or {})[c] or {})[d] or {})[e]
Indexable nil looks like a better alternative.
Would indexable nil reduce runtime error detection? No.
"Attempt to perform arithmetic on a nil value" and the like.