Configuring only the code you need can bring the actual kernel size down to very small images. Configuring a kernel for a small embedded application takes time, but its well worth it. And fast.
It's nice to have choices. It's also nice to have most of those choices sitting on your hard drive unused, rather than being loaded into memory. It looks like that's still what's happening with Linux.