So why does MooseX::Traits (which has your name on it) use hacks to achieve exactly that effect?
This is the fun part about Open Source, just cause my name is on it doesn't mean I have done anything other then contribute some part of it and I am no way responsible for the contents ;)
The configuration of trait_namespace will inherit. If you don't like that, why not just use a simple package variable in the package of the object's original created type?
Well, in this case, inheritability is nice, but the goal here is more configurability of subclasses without altering the core MooseX::Traits itself (which would have global effects, which are bad bad bad).
I suppose someone else maintained it and added that bit... but how would you (or how did you originally) do it, in keeping with your stated design philosophy?
I am pretty sure jrockway wrote that part, it is not how I would approach it but this solution is not all that bad (I have seen worse). Keep in mind too that was also written quite a while ago, today one would accomplish this type of thing by making MooseX::Traits into a parameterized role using MooseX::Role::Parameterized.