Infelizmente, você está errado sobre isso - presumo que posso compartilhar todos os meus atributos etc. entre a API da web e os controladores de mvc, então, aparentemente, não parece uma grande mudança para mim.
Muitos dos conceitos usados pela API da Web e MVC, embora semelhantes à primeira vista, na verdade não são compatíveis. Por exemplo, os atributos da API da Web são System.Web.Http.Filters.Filter
e os atributos MVC são System.Web.Mvc.Filter
- e não são intercambiáveis.
O mesmo se aplica a muitos outros conceitos - vinculação de modelo (mecanismos completamente diferentes), rotas (a API da Web usa HTTPRoutes e não Rotas, embora ambos operem na mesma RouteTable subjacente), resolvedor de dependências (não compatível) e muito mais - embora semelhante no superfície, são muito diferentes na prática. Além disso, a API Web não possui um conceito de áreas.
Em última análise, se tudo o que você está tentando alcançar é ter uma maneira "nova e moderna" de fornecer conteúdo JSON - pense duas vezes antes de seguir esse caminho. Eu certamente não recomendaria refatorar qualquer código existente, a menos que você realmente esteja pensando em abraçar HTTP e construir seu aplicativo de uma forma RESTful.
Tudo realmente depende do que você está construindo. Se você está iniciando um novo projeto e tudo que você precisa é servir algum JSON para facilitar seu aplicativo da web - desde que você esteja disposto a viver com algum código potencialmente duplicado (como o que mencionei acima), a API da Web pode ser facilmente hospedada dentro o mesmo projeto da ASP.NET MVC.
Eu só separaria a API da Web em um projeto separado se você for construir uma API adequada para seu serviço online - talvez para ser consumida por clientes externos ou por vários dispositivos - como abastecer seus aplicativos móveis.