What is the best way to handle multiple distinct player mechanics states?

I hope its okay to add follow on question to this, but why is adding a component any different than just switching functionality from a branch or switch? It accomplishes the same thing, and you can still wrap code into reuseable functions. So whts teh difference?