requiring tests for such functionality as is testable, and not marking the functionality complete until the test is complete, isn't a style thing, it's a "this is what the quality bar is for check-in" thing. Which is within a project technical lead's mandate.
I agree 100%- and we've had a lot of discussion along this point (myself, the project managers, and our two technical leads)- I actually don't care if people use TDD- I DO care if the code is cleanly written, refactored, and unit tested. To me, that's just doing your job. You aren't doing your job if what you are checking in isn't quality, and that includes unit testing. The issue is, how do you enforce this? We've tried emphasizing the importance of unit testing, but at the end of the day, what do you do when people just don't do it? It's not so much that they are defiant, as they always have excuses.
I want to point to the success that we TDDers are having and say "look- this works!", but the problem is that people say "yeah, but what you're doing is easier to write tests around".