I am fully in support of this type of encapsulation. Programmers ought not to be fiddling with an object's member variables without being invited first. Programmers doing that deserve the heck they get from it. I do it sometimes because the implementation on CPAN wasn't precient enough to suit my needs so a mutation is needed. I also do it because it is fun.
I don't do it in places that matter. (well maybe except LWP::Simple::Cookies, LWP::Simple::Post, and B::Deobfuscate but those are exceptions and well enough defined exception areas.