Today I spent a couple of hours tracking this bug down. The bug is mine, but relies on what I think is rather counter-intuitive behavior in Moose (due to how Class::MOP works). I trawled through a lot of source code before I could replicate a simple test case. I'm not sure why Moose behaves this way and from what I can tell, it's not documented in Moose, but implied via the Class::MOP::Attribute documentation.
#!/usr/bin/env perl -l
has some_method => ( default => 'foo' );
If you don't know Moose, you won't see the bug. In fact, I'd wager that many who are comfortable with Moose won't see the bug right away, if at all. You'll see the problem if you run the code (I'm on the latest version of Moose), but the fix won't be apparent unless you understand why the bug occurs.