I would say that the problem is that you are trying to link a .cmx directly, while it had been generated for packing. I think the compiler should complain not about the double link, but about linking instead of packing.

Is it forbidden to link directly a -for-pack'd module ? I agree this is bad style in general, but I was not aware it was forbidden (yet). It could be useful to allow it, e.g. for compiling compiler modules for -for-pack, so as to allow to include them in a third-party project without risking name collisions. But I wouldn't object to disallow it explicitly (probably in byte-code as well).

I reopen, because I'm not sure to understand why they are the same problem. I understand this one (0003922) would be fixed by disallowing linking directly modules compiled with -for-pack, but not 0007086, AFAICT.