Por que não os dois?
O que significa, sim, que há trade-offs a considerar, mas se o custo marginal de implementar uma segunda opção for pequeno, você pode oferecer aos seus clientes a capacidade de selecionar qual representação eles preferem, para que eles possam escolher seus próprios trade-offs (claro, há alguma penalidade de complexidade a ser paga oferecendo uma escolha, em vez de resolver o "problema" para os clientes).
The major con I see is that you've built an endpoint tightly coupled to this particular view within this particular application.
Não é exatamente a linguagem certa, do ponto de vista do REST. Não é o endpoint que é acoplado ao aplicativo, mas o tipo de mídia da representação.
Naturalmente, preocupar-se com tipos de mídia tende a ficar de lado quando estamos implementando o cliente e o servidor, e seus ciclos de lançamento são acoplados.
The pros of 2. are that we are using nothing but generic resource endpoints, which could be re-used by many different views and applications.
Esse pensamento está incompleto - você pode não apenas reutilizar os endpoints, mas pode reutilizar as próprias representações ... ex: cache. Se o cliente puder extrair os dados que ele precisa de seu próprio cache, não será necessário fazer uma viagem de ida e volta. Caso contrário, um cache intermediário já pode ter uma cópia dos dados, encurtando a viagem de ida e volta. O "servidor" com o qual o cliente está falando pode ser um farm de cache na frente do seu aplicativo, mantendo a carga de trabalho baixa e, ao mesmo tempo, podendo ser expandida.
No REST, você quer ter certeza de que seus projetos aproveitam a interface uniforme.
Então, uma das coisas em que você deve pensar é o tempo de vida de cache de seus recursos; Por quanto tempo as representações são válidas? Outras visualizações e aplicativos poderão tirar proveito disso?
Should the fact that this API is an internal company API (and almost certain to remain so), rather than a public facing one, influence my decision?
Isso provavelmente limitará o volume de tráfego necessário para o suporte. Além disso, se todos os clientes tiverem uma localização central, o tempo de ida e volta também cai como uma preocupação.