The linux kernel module thing is a very gray area. The nvidia drivers don't actually 'link' to the nvidia drivers and that's what makes it unclear. I forgot where I read the way it is done but it is done a bit in the way of the following analogy. If the linux kernel is a webserver then the nvidia linux module can be seen as a webbrowser. It doesn't really use kernel functionality it only uses some information from the kernel.
The whole GPL issue came up recently with the Kororaa distribution which was shipping prebuild nvidia/ati drivers with their kernel. The following article explains the gray area quite clearly: http://kororaa.org/index.php?entry=entry060521-200059