Because everything that exists on /etc/rcX.d is being executed upon entering the X runlevel (according to some parameteres that come from the filename, S for start, K for stop, and the number that represents the relative execution sequence). Thus if there was not a link for rc.local in rc3.d then it wouldn't be executed upon entering runlevel 3 (which I think is the default - multiuser mode for redhat).
This is the SysV type of startup script management that redhat uses, I personally find more straitforward the bsd type.
This is my rc.local and I have not modified any other rc.x files.
Are you sure i need to modify the other rc.x files???
[root@mrgreedy etc]# more rc.local
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
I didn't say you need to modify, only to verify that a link for rc.local exists in the proper place (most likely /etc/rc3.d). Since you said it works, it propably exists, so you don't have to do anything else.