First: How do you find how much memory the kernel in Windows uses?
You should take into account that on the typical Windows computer, the GDI is so well interconnected with the kernel, they can not be separated (there are functions in the GDI in Windows XP, that doesn't exist in the GDI of Windows NT).
So, from one version of Windows to another, there might be added functionality - some of it is documented, some of it isn't. This accounts for some of the increase.
Does a kernel have to increase in size when you add new features to an OS? It depends. The Hurd microkernel have very little functionality (the least possible), so for everything you want to do, you load a module. The Linux kernel can load modules, or can be compiled with included support for things like file systems, devices and so on. Usually, modules (when loaded) consume a bit more space than having them compiled. Linux kernel is increasing in size (as a general trend) as it "knows" more and more - however, you can keep it small (as a disk image at least) including only the things you need.
I assume you are referring to the operating system use of RAM when nothing else is running - this is not "the kernel". Memory is used in Windows for the kernel, the graphic interface (which you can not unload), drivers, disk cache and others. More memory used could mean that the GDI uses more RAM (see nice looking Windows themes in XP), more memory is allocated as disk buffer, all the processes that run in 2000 have their corresponding processes in XP bigger (extra security, extra functionality), there are new processes in XP that don't exist in Win2000 (automatic update). Improved default drivers (bigger), and bigger drivers from manufacturers. Add extra sh!t from other sources, and you end up with more memory used