Sí, pero con algunas advertencias:
Es totalmente compatible con Microsoft y tiene una comunidad en crecimiento, pero al ser más nuevo que su competidor más cercano, nHibernate, todavía no tiene una comunidad tan madura.
Además de tener una comunidad menos madura, habrá momentos en los que una función está disponible con EF4 pero apenas documentada; o EF4 arrojará excepciones con las que Google no puede ayudarlo.
Tiene todas las funciones cuando se usa como Microsoft pretende, pero en mi experiencia puede ser bastante difícil adaptarlo a un sistema existente. Lo ideal sería usarlo en un escenario totalmente nuevo con una pila de Microsoft 100%. Sin duda, es lo suficientemente flexible como para mezclarse con otros sistemas, pero hacerlo aumenta sustancialmente la dificultad.
Sin embargo, para reiterar el punto principal, es completo y lo suficientemente estable para su uso en producción.
Una cosa clave para señalar, que parece obvio pero que a menudo se pasa por alto hasta que causa dolor, es que un ORM funciona para mapear desde el paradigma relacional al paradigma OO. Si alguno de estos niveles no sigue las reglas de su paradigma respectivo, se sentirá más herido.
Esto puede ir en ambos sentidos: si conoce bien el paradigma relacional / basado en conjuntos de SQL y OOP, entonces el ORM permitirá que los dos se mezclen como mantequilla. Si su base de datos parece que quiere ser OO, y su código OO parece que quiere estar basado en registros, entonces YMMV.