I prefer explicit final designs where possible, hooked up to a prototype flow tool like Invision App. When you only wireframe or loosely approximate your designs, you wind up with "leaps of logic" whereby in the design it looks good, but actually makes no sense when trying to program it.
I've worked with wireframes that put a generic "related content" box on the page filled with lorem ipsum, but then when you go to build it, you realize the content you're trying to put there doesn't actually fit properly, or no thought was given to what the related content criteria should be. Sometimes pages are orphans - they exist as a design, but there is no element in another page that actually would let you get to it (which is why flow tools like Invision are helpful).
Generally the more detailed the design, the easier it is implement functionality, as the more thought-out it has to be beforehand.
Now, when it comes to doing front-end dev and styling, then full final designs all the way, down to the littlest detail. Not all design elements are easy to implement in CSS (e.g. gradient text on a textured or image background - simply not possible to do cross-browser). So having those excruciating details already designed ahead of time lets you push back on the design. And if you're a designer developer like I am, you can design while keeping the development side of things in mind, creating much more efficient and easy to implement designs.
A thorough design process lets you solve or simplify many of those implementation details before you even write a single line of code.