+        else if (wcsncmp(p, arg_cd, ARRAY_SIZE( arg_cd ))==0)
+        {
+            p += ARRAY_SIZE( arg_cd );
+            p = copy_path_string(parameters->selection,p);
This is wrong. What if there are other options following it? What is the problem exactly?
Please open a bug report for this.

Actually, I don't think /cd is a valid option. I can't find any documentation about
it anywhere. It's also not listed in https://www.geoffchappell.com/studies/windows/shell/explorer/cmdline.htm.
On Windows, you can even run 'explorer /nonsense' and open the explorer window.
So it's more likely to be ignoring all unrecognizable options. 
+        }
         else
         {