A lot of it would hinge on how much hardware you were trying to support. Router images can get nice and small because they build a kernel with the exact drivers in the target. Trying to support all the insane variety in laptop wifi, input devices, and power management is probably where a lot of the bloat comes from.