For an interface designer, handing over your designs to the developer means losing control of the creative process. Of course, you will be working together on the project and communicating back-and-forth, but it will never result in a creation that is all of your own. In other words, you will never be independent in your creativity.
I am currently implementing the new layout of Web Adventures and I thought about using Bastians Kirby. Ultimately I decided to stay with WordPress since the code of Kirby is shit. Kirby is a great idea, but I would not be able to work with its codebase.
The main problem here is that these people don’t understand the difference between being able to combine some if, while and foreach statements to have a working program and the actual process of software engineering. Combing if, while and foreach is the easiest part of the development process. The hard part is writing maintainable, understandable and extensible code. Each line of source code gets written one time but different people read it dozens of times. In any serious software project you will spend more time on architecture, testing and documentation than actual writing code. I am studying Software Engineering now for ten semesters and I can tell you that writing code is only a very small part of it.
And the other problem is: If the designer is also the developer he can implement whatever he designed. Even if it is bullshit. A developer has a different background, a different perspective and he can provide some kind of additional quality control. Of course the designer will also provide quality control to the developer.
While it may helps if the designer has some basic programming knowledge, the designer should not be the person implementing it. It also helps if the developer has some design skills and a sense for good design, but he should not designing. Team work is often hard, but its worth it.