> But I wonder if this level of paranoia is useful?

I'm not in favor of either one, my comment is just to not get stuck in the middle. So imo either go all the way (the paranoia option), or leave it as a convenience check with limited protection. You could still protect the metatable and do the `is_protected()` through the debug library for example.