Up until the early 2000s I used to compile my own kernel, carefully selecting only the options that I needed.
Then I realised that I wasn’t saving memory, because almost everything was a module anyway.
Is there any actual benefit to using a custom kernel on consumer hardware that’s supported by the stock kernels?


Drivers are usually loaded as modules, aren’t they?
I’m not that certain to be honest. But the following is my best understanding:
Most drivers are included directly in the kernel source.
They can be compiled built-in directly to the kernel binary, or they can be compiled as loadable kernel modules. I don’t know how the proportions between the two options look, but at least the essential drivers (chipsets, filesystems, etc) should be compiled in to allow the boot to progress enough that module loading works.
There are some, like the Nvidia proprietary GPU driver, that are provided only in binary form as loadable kernel modules.
I also understand that a lot of smartphone drivers are developed out-of-tree against older branches of the Linux kernel. Even those that are made public / open sourced, end up living outside the mainline kernel, and the devs of third party android builds have to cherry pick them into their kernel source.
I think at least the last group should count as an example of a reason of the type for what OP was looking for.