Both, actually. “Combined work” is something defined in the FSF licenses and as you say, it explicitly covers app+library linking.
Derivative work is defined by law and case law, and the question of whether linking a library creates a derivative-work taint is notoriously tricky.
As for FSF position, I’m pretty sure I saw them (or at least Richard Stallman) taking an explicit position. Unfortunately I can’t find a clear-cut reference at the moment, but I did find two close things by FSF, which are instructive:
First, they have this FAQ entry on linking:
You have a GPL’ed program that I’d like to link with my code to build a proprietary program. Does the fact that I link with your program mean I have to GPL my program?
Yes.
But actually they can say this without relying on the derivative work notion. They can (and do) simply say that you’re not allowed to use the library at all unless you agree to the GPL’s terms that cover also apps that the library. This isn’t a coincidence. The GPL is designed to be maximally robust to jurisdictional whims, and thus minimizes reliance on fuzzy things like derivative work tests.
But then, there’s the FAQ entry on subclassing:
In an object-oriented language such as Java, if I use a class that is GPLed without modifying, and subclass it, in what way does the GPL affect the larger program?
Subclassing is creating a derivative work. Therefore, the terms of the GPL affect the whole program where you create a subclass of a GPLed class.
So if the library happened to be written in an OOP style where uses it requires subclassing, then derivative work taint does carry over, according to FSF. (edit: I removed a stronger statement here, which I need to rethink.)
So we see that things are murky (or worse) even in the simple case where there is a clear separation using libraries. If the app developer (heavens forbid) just copies and changes the code, then things can become entangled as derivative works even more easily.