Why is 'frei' not acceptable here? What if the tomato was loose?
I believe the tomato could go running on the floor, free to go. "Frei"
Frei is not used for something having no cost. It is used to say something is available, for example "Die Toilette its frei".
And if the tomato was freely available?
Aha... so it is possible: “Die Toilette ist frei aber die ist nicht kostenlos“
I wouldn't touch free tomato, thanks.
So why offer 'hatte frei'?!