This is exactly what Sun wrote the CDDL for; it let them open source as many components as possible while still leaving some pieces closed. Sun also ended up releasing a bundle of binaries that you drop into a source build to get a complete /functional OpenSolaris system with the still-needed closed bits included, and over time some of those components got replaced piecemeal with FOSS alternatives (although illumos still includes some closed parts AFAIK).