Perhaps the car route was a little incorrect but the point still stands.
Obviously anything outside of spec IS paid for that I fully agree with but if I specced the system to add 1 + 1 and your system returns 16 then that is a bug/fault/defect and I'm not paying for it resolving. There is always the muddy ground in the middle where the spec was 99% there but missed one thing and thats open to discussion I've not found a contractor yet that wouldn't do say "10 mins extra" just to finish off that little bit to keep me happy so I'll reuse them again.
There's abit of both ways here and both sides have to agree, but out and out bugs aren't paid for as you're providing a product that "isn't fit for purpose" the purpose being the spec. Now if your product meets the spec 100% and still doesn't function as the end user requires or the spec writer expected then thats not a software bug that mis specced and I (not saying what others do here) would certainly be paying for it as its been MY fuck up not the contractors.
I say the above as someone who contracted as a software developer for 20 years and I'm now the owner of a software development house with 20+ inhouse developers. I use contractors when I need additional hands on to deliver larger projects within required time scales. (Note I say contractors not freelancers as most people mix them up)