that's not the same. i_do_not_exist() is a function reference. exec("somecommand") is a system call to run an external command. Whether the command finishes or runs or not exec is still a legal built in function, so php doesn't complain. It's pretty much the job of the programmer to check the output code of an executed program to see if it ran or not.
If you are trying to start a daemon, it may be that it needs to be run as root to latch onto a port below 1024 or something. Have you tried launching the daemon from the command like as the httpd or nobody user (httpd usually runs as one or the other).
If that won't let it run, you may need to set the suexec bit on the executable with:
'chown root.httpd daemon'
'chmod 4750 daemon'
Then httpd can run the daemon as root.
Note that the above assumes that httpd runs as the httpd user in the httpd group, and that the daemon you wanna launch is called daemon.
Oh, and you may need to redirect input and output so that the daemon can properly detach from the launching environment of php. Some daemons need this, most don't.