I'm of the opinion that you should only test public methods (what your class exposes to the outside world, i.e. its contract). Private methods are implementation details and therefore you should be able to change them [effectively changing your implementation, but that should not change how your public methods behave] and rely on the tests you have on your public methods to detect any change in behavior that is not correct.
When you say: "...methods used by a method under test can only be assumed to work if each of those methods has good tests", my opinion is that if that is an issue, than those private methods belong in another class that is a dependency of the class you are testing, and should be tested in the context of that other class.