I worked in a place (a bank) where an estimate that was more than 10% out in either direction would get you fired. Their view was that they valued accurate estimations that highly.
But when I was there it was already being worked around... managers would create lots of smaller projects that delivered cross-functional behaviour to multiple projects and allowed them to externalise and hide the overages in what might appear to only be dependency lines to existing internal projects. The managers of multiple projects would collude to sponsor each others externalities so that they all had a layer of protection from being fired, obscuring what the costs were actually contributing to.
The reason I was there was precisely to build a revenue recognition type system for their project management system to try and identify which projects had asked for some other project to start.
But after that I worked at a UK govt department and they'd become so good at tracking who had been first to demand the creation of another project that their problem became one of legacy... no-one could sponsor even upgrading their long obsolete software or hardware, because even though it was a thing that benefited everyone, the project that demanded it was going to be the one that paid for it (literally paying for the certification, hardware, software, training, etc) which meant if you were the team that said "We can't support this on IE6" then you had to pay to replace laptops, OS, to get onto a later version.
My conclusion... if we don't embrace a pragmatic reality of what things cost, if we try and manage the costs tightly... the side effects usually have unintended consequences that are worse than facing or embracing the original costs.