¿Qué es?

Es el efecto de intentar combinar la encapsulación en tu código escrito en elparadigma de POO con el aislamiento como se busca en una Función con aislamiento (ser testable).

¿Por qué ocurre?

Por que mantener el encapsulamiento (El ideal de la POO y aislarte de las dependencias hace que el código a producir cueste mucho y cueste aún más mantener en orden porque hay una pequeña intersección que hace que todo sea más inestable con el paso del tiempo.