I'm not certain what the default:0 tag means, but I would guess that it will set the price as 0 if there is no price or display price. It goes left to right until it finds a variable that isn't empty, and rather than making $price empty, it sets the 'default' value as 0.
I have my taxing system set up in the same way you describe how you need yours, and it works great.
Under 'Taxing System' I have all the options unchecked (except for 'enable tax exemption'), and in the tax details I have all the checkboxes unchecked as well. These options are all pretty self explanatory so try a few configurations until you get what you need.
Taxes are tricky!