Cita: Es más, si la clase que usa un trait, define una variable miembro como **privada**..pero un trait puede modificarla cuando quiera..exactamente, qué tiene eso de OOP?
En el plano conceptual, al momento de usar un Trait es prácticamente como si copiáramos y pegáramos dicho código dentro de nuestra clase.
Eso evidentemente resuelve el tema de acceso y visibilidad, porque no es un entidad ajena, es por ello que entonces puede modificarse cualquier miembro de la clase host. No es lo mismo cuando heredamos, y eso ya lo sabes.
Por eso el manual dice que hay que implementar métodos coherentes, y a sabiendas de las implicaciones que esto conlleva no debería ser difícil.
Cita: Todo esto no ocurre con herencia múltiple, por cierto.
En eso tienes toda la razón, por eso digo que PHP tiene un modelo "impuro" (o mejor dicho incompleto) de OOP y al no ofrecer dicha funcionalidad de manera natural es que implementa los Traits.
Y pienso que sigue siendo OOP porque dichos traits está diseñados únicamente para intervenir objetos.