atm, rc will only stop/start services that are different between the two runlevels. it additionally should restart ones that use the /etc/conf.d/<service>.<runlevel> syntax.
say you start off in runlevel "default" and you have /etc/conf.d/net, and you have net.eth0 started. then you run `rc foo` to change to the "foo" runlevel, and you have /etc/conf.d/net.foo. we should also slate all /etc/conf.d/net.* interfaces for reloading (except for net.lo).