I'm not sure about ES3, its just my own experience but I've worked for some companies with rather broken processes and they would still involve the engineering team in giving estimates, sure there is pressure to give a lower estimate but I don't see how a company could function by having non-engineering people give firm estimates
Have these been software companies? In software companies, software is the product. In other companies software is an expense. It makes a difference in how it is managed.
Some companies certainly are behaving better software wise. I recommend his book, he goes into a longer discussion of the details, has citations, and includes counter points. It's also possible that this has shifted since the book was written (2002 I believe), but I suspect it's more that you've been at companies who managed to get this part right.
Yes, they are software companies where its their core product.. basically IMO they had some horrible, broken processes but at least they did rely on engineering for estimates of time.