The GPL existed first, thus the CDDL is incompatible with it. If Sun wanted ZFS to be adopted by Linux they would have picked a license that didn't conflict with the GPL. But they knew that if it could be included with the Linux kernel there would be even less of a reason to consider Solaris. Too bad that didn't work out so well for them.
The GPL specifically excludes other licenses. That's not the CDDL's provision, it's the GPL being incompatible with anything else. The CDDL doesn't care if you stab in a bunch of proprietary binaries. Sun has a lot of vendors who work with them and they can't just fly the finger to everyone.
What areas is Linux "so far behind" Solaris?
you've touched on a lot of them, but there's still RBAC, a better init facility, better per-process I/O accounting, better scheduling (cgroups are lackluster), software RAID (mdadm *still* doesn't read-balance RAID1, while svm has since the dawn of time and ZFS read-balances mirrors), better alternate boot environment facilities, etc
The only specific thing I can think of right now, is package management. The crap in Solaris doesn't even compare to dpkg/apt/aptitude. The other thing is the defaulting to non-GNU tools which is mostly an inconvenience, but can be a major PITA when going back and forth. I'm sure if I was forced to spend more time with Solaris my views toward it would be more favorable. But hopefully that doesn't happen any time soon.
IPS was a step in the right direction, don't you think? I install a pretty big GNU toolset on Solaris machines anyway so that's largely a moot point.