prepare_namespace does more, you would need something like /sbin/udev to create the current device nodes. The kernel must be buildable by a user, so mknod will not work. Having the special case for /dev/console is certainly ok, but for more device nodes like /dev/hdaN?
What you have done above seems like a lot more abitious; this is a good thing because it gives more of a concrete benefit. What I'm not clear on is what you're suggesting:
- Should be drop the idea of putting it into the kernel and maintain it as a separate project forever? (Not that that isn't a legitimate option.)
For a start it is probably ok, but its already legacy when it hits kernel.org. People will scream if you remove klibc again, I'm sure :) Better check if doing an external project in the first place is better, for whatever reason.