I think the analogy is flawed.
Software development is probably more like engineering and building a bridge.
You need to compare with something where not everything is known at the outset.
I'm sure that bridges sometimes have "bugs" - problems that were not though of in the planning phase. I'm sure no one fixes those for free.
Is the construction of the bridge equivalent to the software development? or the software release and implementation?
I think you could perhaps design a model where developer fix their own bugs on their own time, but don't expect the model to look like the current one. Developers will want more, and the work will take longer, as testing now takes a higher priority (in my experience many companies only give lip-service to proper software testing because it's difficult to quantify how much money it makes).
It's a valid question, but let's not expect we can just stop paying developers for bug fixing and have the world continue on otherwise unchanged...