O problema que vejo com sua abordagem é que você está criando uma API REST para apenas um consumidor, seus controladores, e isso é um exagero. Não basta adicionar uma camada apenas para passar dados de uma camada para outra, não faz sentido, você estará criando trabalho para si mesmo sem nenhum benefício adicional.
Uma maneira (rápida) de tornar sua API útil seria se esse fosse o único ponto de extremidade que seus controladores (ou seja, seu aplicativo) precisam. Considere isto:
De repente, sua API REST tem um propósito, e é fornecer uma interface unificada para seus vários provedores de dados. Seu aplicativo não precisa saber sobre o Google ou a API do Trello, ou qualquer outro provedor de dados que você possa usar no futuro, apenas precisa saber sobre a API REST.
Esse design, embora um pouco mais útil, ainda será um exagero se o seu aplicativo for o único consumidor. O objetivo principal da criação de uma API REST é expor uma interface disponível publicamente para o compartilhamento de seus aplicativos. E a chave aqui é a exposição, sua API REST estará disponível para o mundo e, portanto, deve ser segura. A autenticação e autorização da API não são tarefas simples, se apenas um aplicativo usa sua API, por que enfrentar todos os problemas? A menos que você queira experimentar e aprender. Se for esse o caso, vá em frente.
De qualquer forma, o desempenho não deve ser um problema. Você adicionaria uma camada extra; portanto, obviamente haverá alguma sobrecarga, mas se essa sobrecarga será significativa ou não depende inteiramente da sua implementação. Se sua API REST for o ponto final único, provavelmente será uma boa ideia também ser o único local em que o cache ocorre. E não apenas o cache do lado do servidor, uma API REST torna o cache do navegador um pouco mais fácil de explorar e, se você acertar, o desempenho geral do seu aplicativo pode aumentar, em comparação com uma abordagem não REST.
tl; dr: Não crie coisas que não tenham um propósito real (a menos que você esteja aprendendo).