And that's one of the things TDD gives you - as you write the test, you have to use the API. If that's painful or even just awkward, it's telling you something...
> Might be better than nothing, but if you are designing a reusable API, you'll be better using it on some real code.
Agreed, this is why tests should be driven from the outside in.
But at the unit level, tests are often the first contact with production code. Tests are dumb and setting up complicated stateful worlds is painful and tedious.
It becomes easier to simplify the production code to simplify the test code, than to just write the first thing that comes to mind.
Might be better than nothing, but if you are designing a reusable API, you'll be better using it on some real code.