Menciona que su servicio tiene dependencias.
Si alguna dependencia en su gráfico de dependencias no está completamente sin estado, o si una de sus dependencias en su gráfico de dependencias debería modificarse para que ya no sea tan completamente sin estado, entonces todo el sistema fallará. Y los errores que obtenga probablemente serán muy crípticos, por lo que será difícil descubrir el problema.
Digamos que eres un equipo de desarrolladores que trabajan en el proyecto. Es muy poco probable que todos y cada uno de ellos sepan que la configuración de IOC requiere que todos estos componentes permanezcan completamente sin estado. Pueden saberlo ahora, pero esa conciencia se desvanecerá con el tiempo. Y si contratas a un chico nuevo, él / ella tampoco se dará cuenta.
Por lo tanto, definitivamente configuraría el contenedor IOC para devolver una nueva instancia cada vez. Es simplemente la opción más segura, en mi humilde opinión.
Ciertamente no me preocuparía por los recursos. El costo de la construcción y la recolección de basura de los objetos es probablemente insignificante en comparación con, por ejemplo, una simple búsqueda en la base de datos.