Você mencionou que seu serviço tem dependências.
Se alguma dependência em seu gráfico de dependências não for completamente sem estado, ou se uma de suas dependências em seu gráfico de dependências for modificada para não ser mais completamente sem estado, o sistema inteiro falhará. E os erros que você receber provavelmente serão muito enigmáticos, dificultando a descoberta do problema.
Digamos que você seja uma equipe de desenvolvedores trabalhando no projeto. É altamente improvável que todos estejam cientes de que a configuração do IOC exige que todos esses componentes permaneçam completamente sem estado. Eles podem saber agora, mas essa consciência desaparecerá com o tempo. E se você contratar um cara novo, ele / ela também não estará ciente.
Definitivamente, eu configuraria o contêiner do IOC para retornar uma nova instância sempre. É simplesmente a escolha mais segura, imho.
Eu certamente não me preocuparia com recursos. O custo de construção e coleta de lixo de objetos é provavelmente insignificante em comparação com, por exemplo, apenas uma única pesquisa no banco de dados.