Yes, the DAEMON_CORFILE_LIMIT variable only works for daemons spawned using the daemon() function from /etc/init.d/functions.  We don't use that method to launch any of the daemons in XenServer, so we need to call ulimit directly.