As you become more skilled and significantly more productive, you'll find you can't capture this value because the client can not get past the hourly rate. And in their mind they can hire someone vastly cheaper who's 'almost as good'. The reality, as we all know is that the dropoff from a skilled dev is quite large.
I've found that overbilling hours at a lower rate results in happy, happy customers who get a quality product at a lower perceived cost. In the end their project is successful and they feel like they paid a fair price and I get paid what I'm worth.
Dishonest? Immoral? Curious on other's thoughts..