It's been some time since I worked on the engine.. I suspect that we could probably make it a switch, but the fact that we didn't to begin with makes me a bit wary of doing so without doing a proper review of the code to make sure none of the methods can change the field as a side-effect.