Maybe i am missing something important here.
How does "not having to make changes to your classes" help to keep complexity low?
In the example you gave about the cookie machine, I would agree. It is a good way to extend the possibilities of the CookieMachine class, and it seems more flexible, but it actually seems to me like the complexity is bigger, than just adding a new "case".
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.