In languages such as OCaml, when you add a constructor to an algebraic data type (which is the equivalent of adding a type here), the compiler will guide you towards the completeness of all the functions in your codebase that match over your type. So this burden is not on the programmer.
> Polymorphism scales well when we want to extend the program by adding types, but it doesn’t scale well when we want to add functions over these types.
In the same manner, you can add an abstract method to your base type to have the compiler force you to implement it in every types that you have defined and that extend it.
So I guess these are not real problems.
The author's two other conclusions are valid however. And I'll add that I believe good software engineering structure programs around data structures rather than functions. So I completely agree with them: long live the switch :).