> The question is clearly determined by copyright law. If I call a function, this doesn't make the calling function a derived work.
It does make the called function a part of your program, however. Because if that function is not available on the target system (in a shared library or whatever), your program will simply blow up.
Well, sure, a missing function will cause the program to fail to function. But what has this to do with the discussion?
The copyright of the program is clearly mine. The copyright of the functions linked into my program is that of the functions copyright holder. The license regulates my right to link the functions in my program. But unfortunately, the license tries to affect my copyrights to my program parts.
It just regulates the conditions under which the (hopefully) dynamic library is distributed.
If the question comes to court (IIUC, this particular case has never been tested), you are just as likely to be ordered to pay for copyright infringement damages, rather than release your software under a GPL-compatible license. You'd have to rewrite it somehow as well, of course.
It does make the called function a part of your program, however. Because if that function is not available on the target system (in a shared library or whatever), your program will simply blow up.