I think this is a great, minimalist way to understand OO, compared with a big black-boxish and black-magical Moose.
I will agree that Moose is very black-boxish, but it is actually very much not black-magical. From the very start Moose has tried to avoid all deep black magic hacks that have plagued so many previous attempts at improving Perl OO.
In short, black magic is inherently fragile and ill advised, we (Moose core devs) avoid it.
Of course, I am speaking of Moose, not MooseX::Declare which has TONS of black magic in it.