Be honest, keep your integrity. Not because lying can damage your carrier, but because integrity will keep you at piece with yourself.
Whilst making profit is a bottom line of any business; it is just a bottom line. Drug trade and racketeering bring profit alright. And people who stay away from these activities barely because they’re illegal don’t quite understand what the law is all about. Good business is much more than profit, which is just a bottom line.
So is quality software is much more than functional adherence to the spec, the functional part is just a bottom line.
This is to say, that it is ok for a programmer to spend time on aspects of software that might be very difficult to justify in terms of immediate tangible business benefits (after all the business itself is not all about tangible benefits!). But willingly leaving these intangible or hard to quantify aspects out is willingly taking quality out of the application.
You don’t need to provide a separate justification either, some rework and iterations should have been in the initial estimate, they are natural part of the task. And you don’t have to worry about being perceived as a “slower” programmer, I find that the better developer I personally become the more quality I can put into a new software feature given the same task duration. Just focus on the task, cut procrastination, e-mails and water-cooler talk and put this time into quality. It leaves a very rewarding feeling then you leave your desk in the evening.
Once your work will get renowned for its quality there going to be no questions about the estimates you provide.