init(8) runs /etc/rc (and /etc/rc.shutdown) with the resource limits of the "daemon" class. But starting/restarting a service with service(8) will lose those limits and the service will inherit the limits of the user issuing the command. This feature doesn't seem well documented, but still I think it would make sense for service to do the same thing as init.
r288291 from a few years back effectively did the same thing. All rc scripts are started with a minimum of 'limits -C daemon' now whether they are started at boot, /etc/rc.d/script cmd, or service.