It seems that what you are saying is that you think an Exception is better than an Error.
Not exactly; what I'm saying is that the attempt to separate stray nulls from separate compilation issues here seems like a heroic effort for low value, and I'd rather have one channel for "exhaustiveness failure" and let implementations decide how heroic they want to get in sorting out the possible causes.