Is it possible to boot a Linux kernel (say 2.6.35) without initrd these days? I seem to remember that this is possible before (early 2.6.x and 2.4). I mean, in theory, if a kernel has all hardware support built-in (no modules), it doesn't need an early user space, right?
I don't use initrd. All that needs to happen is that you have all the drivers needed to boot your system compiled into the kernel rather than as modules.
If you use gentoo, then building your kernel and drivers is part of the installation process, it becomes second nature if you are going to add boot dependent hardware into your system that you first add the driver to the kernel. It also becomes second nature to disable anything you don't need - because there is no point compiling a bunch of drivers even as modules if you are never going to use them.
This process is conceptually more difficult on a distro like ubuntu, where the kernel is managed as a package and has everything modularised (it has to, to work successfully on many different systems out of the box). It often isn't worth the bother.