Please define what you mean "from scratch". CM9 is on many devices which do not have ICS and never will have ICS, Nook Color being one example. They took the ICS code (NOT ROM, code), modified it where necessary for the device specifics, took the known kernel config that was tweaked and configured and patched over the Froyo and GB development times, put it all together.
And you also realize that CM9 is, by design, AOSP + additional tweaks. Therefore taking a known stable ICS codebase, like the Nexus S, and making a CM9 branch for it, isn't extraordinarily difficult, especially with the knowledge learned from previous experience on patching in CM specific function into ROMs.
What CM will not do, however, is release a ROM which is half baked. If the phone won't connect to the carrier, wifi drops in and out, and the kernel is unstable, at best it would be a private alpha build. It wouldn't even hit nightly until it was stable enough for non-developers to use.
So let's just say you don't like CM, that's fine, badmouthing them, however, is not.