Surprised you didn't mention the wasted time spent trying get the code spaced and formatted into something approaching legibility... and then reformatting it the instant you add a new, longer case.
Regardless, it suffers from the same boilerplate creation problem inherent in any state/action/reducer pattern: One has to define the actions, then define a state reducer/switch capable of handling those actions.
When a simple function call on a reference type could provide the same benefit and protection... without all of the additional overhead.