When I develop functions like this, I refer to them as "sentinel functions," resembling identity functions where the return value is either ignored or defaults to a specific value (though not the actual identity); these functions should have no side effects.
The term "sentinel function" may not be widely used, but I see their purpose aligning with that of sentinel values. (It could be argued that in JavaScript, a function is a value and thus a "sentinel function" can also be seen as a sentinel value.)
A similar technique, applied in slightly different contexts, involves placing a specific value at the end of data to eliminate the need for an explicit termination check in certain processing loops; this value triggers termination based on other existing conditions.
If we were to rephrase this concept for a "sentinel function":
In a slightly altered scenario, one might utilize an empty function as a sentinel function to remove the necessity of explicitly checking for a function-object when calling upon a function expression, since the sentinel function-object can be executed.
For example:
function doStuff(data, callback) {
callback = callback || function(){};
callback(compute(data));
}