Because the linux is explicitly only gpl2. If it was gpl2+ then gpl3 code could use it. It’s a very known problem around the incompatibility of some licenses. The kernel people explicitly only want to use gpl2 and refuse changing the license because it’s better for companies that want to use linux without giving back the code.
Yes.