Что должна вернуть функция NULL, если ничего не найдено?
Если функция на выходе должна вернуть указатель на что то, но этого чего то нет - то возвращается NULL в общем случае. Это нормальное поведение для с/с++. Никакого зла тут нет. NULL - это не тип данных, так что int* foo = NULL - корректно. А "забывают проверить" - это признак непрофессионализма. 
Если вас так пугают эти проверки - можно поступить чуть чуть по другому. Сделать функцию 
bool find(int* array, int value, int* output).
Функция возвращает true если было что то найдено, или false, если небыло. Результат в случае нахождения помещается в output. Если ничего не найдено - Output не трогается.
Функция должна вернуть то, что написано в техзадании.
Я бы в данном случае предложил возвращать -1