Possible counter point: while the unit-tester is busy writing perfect software. I'll be lazy... and perhaps I'll beat them to market and will use the resulting money to perfect the software.
Countering your counter point: while you're busy answering support calls and working through bugs that weren't caught in functional tests, I'll be delighting customers with software that works and sleeping better at night in a less stressful work environment because we've done everything we can to ensure our software is as good as it can be.
I actually thought the same way you do until just recently. Once you get into the flow of writing unit tests, you'd be surprised how little time it takes, and how effective TDD can be. It helps me stay focused, and structure programs better. I can't say if it actually has slowed my development time at all, when you take into account fixing bugs found in functional testing.
In my experience this strategy only works with small projects. Projects with any level of complexity will have you running from fire to fire and it will impede your forward progress. Developer retention and customer happiness will suffer. I'd be happy to compete against such a company. ;)
I actually thought the same way you do until just recently. Once you get into the flow of writing unit tests, you'd be surprised how little time it takes, and how effective TDD can be. It helps me stay focused, and structure programs better. I can't say if it actually has slowed my development time at all, when you take into account fixing bugs found in functional testing.