in reply to Does one encapsulate a class from itself?
There's a big difference between a public API (which may do lots of argument checking and other validation) and an internal API. If your class is complex, it's perfectly reasonable to provide some internal API for changing the state of the object. This allows you to change your underlying implementation without breaking as much dependent code. But (as you have observered) the public API may be too cumbersome or slow for the internal implementation to use.
So it All Depends - there's no single right answer.