As NXC is a compiled language, I would assume calling a non-existent function or accessing a non-existent variable would throw a syntax error during compilation as it does in other compiled languages I have used.
Conversely, in interpreted languages like PHP and Python you can often call or access things that don't exist without creating an issue until that actual call or access happens - hence the need for method's like
function_exists() in PHP.
Edit: Looking at the Tasks docs it seems that a "task" is similar to a function in that it is defined in the source code, versus being created dynamically at run-time. I expect if you write something like:
Precedes(non_existent_task_name); ("Precedes" being a function to start tasks), and try to compile you would trigger the same sort of syntax error as you would if you did something like: