Bill,
Everything you say is absolutley correct, for procedural programming. IN OO a class is designed, tested, and then used. If a class has a problem one stops what they are doing and returns to the class design. Once a class is solid, I have no interest in seeing its method code or how it calls other things, I expect it to work and that's it.