Agree that code is a beautiful art to create. We think of ourselves as craftsmen.
We don’t like taking on projects that don’t make sense (such as unrealistic deadlines) for that reason.
Even with our own products, it is still important to have estimates for deadline. I don’t think we should hope estimates doesn’t matter, but rather that we fix one thing: time (cost) or features. For example, if features matter more to a client, then we should allow time to architect well, be able to refactor code and remove technical debt, etc. Vice versa, if time is tight, then we work with clients who understand how to prioritize features.