The key point for me is that most of the recent criticisms I've read about TDD have almost always been about TDD as a testing tool. If you look at the reasons folk list on why they do TDD testing is rarely, if ever, mentioned.
For me TDD is a design/development practice, not a testing practice. That's where it delivers value for me.