Esse é um ponto que gera bastante discussão. Do ponto de vista de práticas que o mercado costuma adotar, responder com 404 não é muito usado nesse tipo de caso principalmente porque muitas vezes o client não está preparado pra lidar com o erro que o 404 representa (ou lida com ele de forma errada).
Eu, particularmente, sempre vou na opção 200 com um array vazio.