Although not an Inkscape developer, I'm not entirely in favour of "merging instances" of Inkscape.
1. I've heard of people running the last stable build and a dev build concurrently when they run into an issue to try to pinpoint it. 2. The functionality of Inkscape Portable would be reduced slightly as it would no longer be able to run if inkscape.exe is already running. 3. Version compatibility in particular - it would need to be implemented carefully so that it doesn't break anything with running different versions, at least back to 0.48. 4. Stability: if Inkscape crashes, all windows from that process die. At times I have intentionally run multiple instances of the same version of Inkscape, because I'm doing something which I know to be a sensitive crash-causing issue and I don't really want to pull down my other document at the same time. (Don't worry, I've reported the bug each time :P)
I think the best solution would be to query the already-running instance(s) and see if the path matches on any to the current path; that way you can get a single instance per path. So you could run 0.49 and 0.49+devel-r12345 in different directories, and starting a new instance of r12345 would open a new window in that instance, and using the file manager which happens to associate .svg with 0.49 will open that in 0.49. Or even another instance of 0.49 in another directory - and that way Inkscape Portable wouldn't be affected. (That's partlywhy I think a path check would be better than a (more complex anyway) version check.)
Reason 4 is not addressed by the single-instance-by-path approach above. The others are. I think it would not be too difficult to have a preferences option for it, if people thought it important (even if there was no UI for it); LibUnique looks to me like it should be able to cope with all this: process detection would be done first, I think, unless LibUnique supports that sort of same-path thing directly? then the process management and inter-process communication would be left to LibUnique.
I'm not sure if this is how you'd go about implementing it, so that's why I've spoken up. Does it sound reasonable?
Chris Morgan