Again, the kernel image is loaded from (hd0,1). The argument isn't seen by grub but we need it since /dev/hda4 is the LINUX root. Basically, once grub loads the kernel image, it's setting it's next root to be the LINUX root. This much makes sense. If I didn't have a boot partition, would it be possible to do this
the "root=/dev/hda4" isn't even interpreted by grub. grub sees that as a kernel argument, so it ignores it and uses the root specified by the "root (hd0,1)" command earlier. Then the kernel starts loading, sees the "root=/dev/hda4" command line parameter, converts it into numbers it knows (08:04 I think), and goes on like grub didn't even exist.