I suspect that whatever you are using to "edit" the jpg, isn't editing it in-place, but rather when you save the changes you made, it deletes the original file and then write a new one with the original name and the new contents. This (by design) breaks the link.
For reference and an authoritative description, see this forum post by the guy that implemented link on win32.
To prove it is the editor rather than perl that is at fault, try this sequence of steps:
Thank you very much! This explains everything. So I tried with this code :
open O, ">a.bin";
print O "Hello World!";
link "a.bin", "b.bin";
open L, ">b.bin";
print L "Bye World!";
open O, "a.bin";
print while ( <O> );
# prints "Bye World!"