Po pierwsze, wiecie, że można odwołać się do każdej metody cechy jak do metody statycznej? Oczywiście bez kontektu $this, ale to jednak odwołanie.
trait MyTrait { public function show() { } } MyTrait::show();
Poza tym, tak samo można odwołać się do KAŻDEJ!!! metody publicznej w klasie, jak do metody statycznej. No to wg mnie paranoja. W PHP 5.3 tego nie było i wg mnie tak powinno zostać.
class MyClass { public function show() { } } MyClass::show();
Po trzecie, dlaczego kompilator szuka cechy (od razu), gdy napotka w ciele klasy słowo kluczowe use? Jeśli nie znajdzie, to wyrzuca zawsze błąd, że nie może znaleść cechy - mimo, że ja na przykład tak nazwałbym swoją klasę. Do tej pory, zawsze gdy używałem use w ciele klasy, a klasy której nazwa stała za use nie było, to PHP nic nie robił - nie było żadnego błędu. Teraz zawsze wyrzuca ten sam błąd.
Sprawdzałem to na najnowszej wersji PHP 5.4.11 ściągniętej dopiero co z serwerów PHP.