Technical complexity hurts the user experience. Technical complexity makes it more difficult to change, optimize, enhance, and scale your design. In my experience, when the technical design gets too complex, only big changes are worth the effort--small changes are just not worth the amount of time it takes to make and QA the change. This leads to myriad small enhancements that get left by the wayside, and a UI that grows stale and stodgy.
So when your developer says "I can can implement your design, but I'll have to hack something together to make it work," you should hear, "This had better be a darned good design, because you may never get a chance to change it."