DOM diffing is great for most stuff. When you need anything other than "Replace this with that and don't defocus my input fields", DOM manipulations are great. Drag'n'drop is a great example of this.
There is a lot of potential for the imperative APIs for this though. I even made a proposal: