Back to the guy with the leak. He didn't want us to look at the leak. He didn't want us to diagnose the problem and implement a solution. He wanted to know the cost. We wanted to look at the problem area to give a thorough proposal with an unambiguous price that he would pay us for our service. By not allowing us to do our job he was setting the table for us to be like the grocery store. "we know we told you this price, but it is going to cost more because..."
There is nothing wrong with requesting a free estimate. Certainly know the cost before you agree to have any work done. Get it in writing. Get it in writing, please. Be assured that the work was done to agreement. Then pay the contractor. This should make the experience pleasant.