Linux kernel drivers often end up being GPL'd, but out of tree. This is because Linux releases many very useful (and sometimes critical to the use-case!) functions behind a GPL-license API restriction. This is EXPORT_SYMBOL_GPL.
Are you sure this is exactly what it means? You're basically saying that if I start hacking on a driver that consumes such an API tonight, I must release it as GPL somewhere publicly the moment I start consuming the API? I can't even work on it for a bit privately?
I'm surprised if so, because usually these sorts of licenses only apply if you're redistributing the code, not if you're just using it privately.