the desire to be able to allow people to ship proprietary addons in no way eliminates releasing the code under GPLv2, all they would need to do is to dual-license it as CDDL and GPLv2 and they could do everything they currently do under the CDDL and linux could use the code under the GPLv2. Since they require copyright assignment for contributions, they can change the license whenever they want.
Linux has other code in it that's dual licensed, and it's the common practice to maintain that dual license over time. The assumption is that if you are submitting a patch to a file, your patch is under the same license(s) as the rest of the code in that file (except for things that would require copyright assignments). I believe that I have seen patches that explicitly were only under one license on a file that was previously multi-license rejected for this reason. No, this would not let Sun re-license this code as they would not have the copyright assignment for it, but that's one of the realities of opensource.
Sun chooses not to do this. They have the right to do so. The fact that they make this choice disappoints me, but does not annoy me.
I don't think anyone is claiming that keeping opensolaris code out of linux was a prime consideration, but I think that it's pretty clear that it was _a_ consideration.
Like others, I do find it annoying when people make the statement that if Linux only changed it's license they could use X and therefor the fact that feature X is not in linux is solely the fault of the linux developers Because Sun made the code freely available and is disappointed that the linux developers are not using it (usually with some snide comment about nih syndrome)
also note that if the CDDL cannot be combined with the GPL, there's no way that it could legally be combined with BSD code with the result still being BSD (it could be combined with BSD code with the result being CDDL)