I have been fiddling with textedit on Windows, and I have determined that when source files contain tabs, lilypond always calculates the "column" parameter assuming that tabs occupy 8 spaces. In my case I have my editor configured for 4 spaces, so the link always overshoots.
Luckily since textedit also includes the char position, and my textedit protocol handler is a custom python script, I was able to compensate (actual_column = (3*char+4*column+4) / 7 ).
Obviously this is just an workaround. Is there a way to parametrize lilypond itself to assume tabs = 4 spaces instead of 8 when computing the textedit link?