It's pretty much everyone. I think hal is relatively innocuous, and udev is very cheap, too. No, the problem appears to be with the GUI programs that make for instance the default GNOME desktop.
On my Ubuntu install, I can count about 5 GNOME programs that I could easily live without, that each use unique memory between 5 to 15 MB. (Whatever they are sharing might come for free, or with smaller cost, and it is difficult to estimate.)
For instance, a monster called update-notifier has 23 MB resident memory, of which only 10 MB is shared. I don't know what that program does that is worth at least 13 MB, given that most of the time it just lurks invisibly in the background.
mixer-applet2 that mostly shows a single volume icon has a 22M - 10M statistic giving 12 MB private memory use. fast-user-switching-applet is the same. Gnome power manager costs 8M (on a desktop system, too, where it's worthless). Hell, mere trash icon in panel costs 3 MB.
No matter how efficient you try to make any individual process, there's also the problem that a linux desktop today runs about 150 process, of which about full 50 come from kernel (and are probably cheap). The 100 userland processes necessary to service a single user each spend some resources for sure, but at least most of them use less than 1 MB of private RAM.
Funnily, the process that uses just above 1 MB of private RAM here happens to be hald, every other system process consumes less. And everything above that point is mostly gnome stuff...