Seems to come back to the question of whether you can hold the whole program in your head. If so then it's simple to figure out what needs to be tested and what doesn't.
One ancillary benefit of TDD is that it increases your confidence for a release. Confidence allows you to release and promote your code without fear that you'll be up all night fixing bugs.
Diagnosis: false dichotomy.
Indeed: release on the net from a build farm which builds daily, and tests every build, while not releasing any build that fails any test. Works for a lot of projects.