Who says that the $self->content
variable stays a variable in the future? Dealing with the attribute doesn't cuase the attribute to become uncapsulated, but it does
violate information hiding. An object has a published interface (the methods) which are more or less guaranteed to work. The upside is that when the author of the module/class feels there is a better way to implement things, she can do that without changes to the external interface.
Of course you can use the attribute directly. No one is stopping you. It'll probably work just fine. Just don't get upset when it suddenly breaks your programs when you install a new version.