For me it solved many reoccurring problems. One issue that popping up for me was the need for a clunky visitor pattern. Say you do collision detection between multiple shapes of different type, or you want to transform a serialized representation of a GUI into GUI elements.
In my mind it also removes a lot of cases where I need major restructuring and and refactoring in typical OOP languages. Getting type hierarchies and code organization wrong is so much easier with OOP and much harder to de-tangle.
Not always easy to explain with examples. Once you used MD for a while and try SD again you really start noticing how clunky SD makes code writing.