An other problem is when GCC drops architecture support -- say some old arch which Linux doesn't run on but which the BSDs do -- then the BSDs are forced to maintain multiple old versions of GCC...
Porting a program that was written primarily with (say) i386 Debian Linux in mind to other platforms is a great way to find bugs due to incorrect assumptions. They may be asymptomatic on systems with 32-bit processors, the same endian-ness, etc., but they're just lying dormant. Patches from porting and the OpenBSD security audits are contributed upstream, too.