I don't understand what porting from other architectures has to do with anything. If Linux has some code for amd64, and then Linux developers port that code to aarch64, why would the aarch64 code be different from a licensing perspective than the amd64 code?
I don't know why they have non-GPL symbols. My understanding is that they could have marked every symbol as GPL. There's presumably some desire to allow limited closed-source drivers. You'd have to ask someone involved or find some writings from someone who knows. Maybe Google can help.
LGPL sets out better, clearer boundaries. And it allows some things that might arguably be derived code, while the GPL would hedge much closer to that line. So it has a use.
Also FSF tends to overstate the importance of linking.