Using TDD everywhere is stupid. I think, tests are most useful between layers of abstraction, especially if you are the provider of abstraction. If you are merely a user of abstraction, it is stupid to unit test that code.
If you have an interface to the outside, then that should be unit tested.
If you have an interface to the outside, then that should be unit tested.