Logically the change here is that the parent shell folder resolves each child path in 'FORPARSING' mode, instead of resolving itself and doing a bunch more string concatenation for assumed simple child pidls.
This also removes hacks for change notifications in the delete path by actually performing notifications for deletion and trash operations within the shell op.
Background:
I noticed a comment in the ReactOS version which suggested the first change, it makes sense to not query the children in this way here.
The notifications hack also seemed really off. I'm not sure why the shell operation wasn't performing these notifications already.
Testing: All tests pass, and loading up wine explorer was easy to test the deletion. Items were deleted (or trashed) and the shell folder was notified.
Unfortunately, copy and paste seem very broken at the moment, as the paste_pidls function only calls ISFHelper_CopyItems with one pidl at a time, and it itself seems to fail to correctly resolve the from path.
I did some hacking so that it did work correctly if the 'from' folder was the desktop, and it worked fine with these changes (but those hacks wouldn't pass review).