The switch is like a preprocessor directive, it’s evaluated at shader compile time so that the resulting shader has the least instructions and is therefore simpler and faster.
A dynamic switch would be useless, as both branches would be compiled into the resulting shader and still have to be evaluated - so you save nothing (and existing shaders would go up in instruction counts).
If you need to change at runtime, you have to use a Lerp node. There are several blend material functions if you want to drive multiple properties at once.