A similar simpler case:
c.php: namespace B; use A\Item;
b.php: namespace B; class Item {};
main.php: require 'b.php'; require 'c.php'; FATAL error
main.php: require 'c.php'; require 'b.php'; No problem at all
Our system worked fine but unexpectedly started crashing because someone declared a new class that suddenly caused a conflict in an included file elsewhere.
Namespaces were supposed to just fix that problem.
I would like that namespaces worked completely static and on a per unit level. The way it is designed suggests that it should work that way...