It works in the other way. A closed source program can't rely on GPL code (without special permission) but a GPL program can rely on closed source code since you need permission from the closed source license anyway.
GPL just sets a base level of permission that you get, the rights owner is still free to grant any exemptions they want.
No, you can't distribute a binary under the GPL if it's been linked to GPL-incompatible (e.g. closed source) code. Unlike the LGPL, it doesn't make any difference whether/which part of the program is included from a library.
However, the Amensia devs aren't distributing the compiled game under the GPL, they're only distributing the source code, which doesn't include FBX. You're free to distribute code under the GPL which can't actually be compiled/linked.
That said, what you wrote doesn't make sense to me anyway, maybe I misunderstood it.
I think you are mostly right, only that they can distribute the binary since they have the rights to do whatever they want with their own code.
If I fork it I think I could add a new proprietary dependency and release the code for it but once it is built the binary would be unsharable as you say.
What I was trying to say originally is that if I was writing proprietary code I would not be able to add a gpl library and distribute the binary but I could do it the other way around.
> No, you can't distribute a binary under the GPL if it's been linked to GPL-incompatible (e.g. closed source) code.
No, GP is right. Your GPL license covers software "foo". GPL says what can be done with "foo" and things that depend on "foo"; it says nothing about what "foo" can or should depend on. "foo"'s dependencies can (and should) have their own licenses.
TL;DR: If you're writing a software "foo", you can choose what people do with YOUR OWN software (either directly or by linking into it), not with upstream dependencies.
EDIT:
I think that what you mean is that, if you're a GPL licensee (not the copyright holder) for "foo", you cannot add a proprietary dependency to it and redistribute the binary. But the copyright holder CAN do this, and it CAN add exceptions to the GPL (it's the copyright holder who can choose what to do with its code)
> GPL says what can be done with "foo" and things that depend on "foo"; it says nothing about what "foo" can or should depend on.
False, the GPL (when applied to binaries rather than source code) applies to entire copyrighted works -- entire programs, with the exception of "major essential components" of the OS (ie system libraries). No other limits are placed (unless the author adds them): it's designed to stretch as far as the concept of "copyrighted work" will allow, which is presumed to include dynamically linked dependencies, and commonly presumed to not include other binaries called by your program (e.g. calling the Steam API using RPC is GPL-compatible, doing it using the SteamWorks client library is not.)
I wrote "you can't distribute a binary under the GPL..." which is true regardless of whether you wrote the program. Of course if you own the software you can instead distribute it under a different license, or add exceptions to the GPL.
To reword: basically, you're right in that if you own the code, you can license it under GPL with an exception to allow linking to anything you want. If you don't add necessary exceptions and distribute binaries, you've provided an invalid license to code you don't own, and those binaries aren't lawfully redistributable.
It's complicated, but essentially yes, you can. But you may not be able to distribute the compiled work, just the source code, without bundling the closed source libraries.
GPL just sets a base level of permission that you get, the rights owner is still free to grant any exemptions they want.