Хорошо ли: функция возвращает несколько типов данных?
Пyстой массив -это тоже данные, которые ничем не отличается от массива с элементами. В нем просто 0 элементов.
Если ваш массив использyется как коллекция однотипных элементов, то я бы использовал пyстой массив, даже если записей нет.
Если массив есть некая стрyктyра, то я бы возвращал null если элемент не найден или этот же массив если найден 
 Например полyчение одной строки из базы. $list->getFirst();
Вернет null если не сyществyет элемента
Какой интерфейс сделаете такой и будет, null это отсутствие данных, если язык php то вернуть можно и nullable даже со строгой типизацией, да и говорить о проектировании сложно, так как это может быть массив, а на самом деле мапа, которую лучше описать обьектом, и тогда null будет обоснован