When I write/modify a piece of code, I of course must see so it works. I run the new code, feed in some data and see the results.
If I separate UI and backend/model, I can just write code that feed data to the model to see so it works (instead of doing it ad hoc, by hand). Then I save that as a unit test. It is part of the documentation too (a use case).
Cheap, easy and with good value for effort. (Depending on problem domain.)
Edit: I can see where the "test induced design damage" comes from, mocking is bad, but I think code also often get better when it is made testable (dep injection, think about fan out/in, etc)