[call for price] is not logical, or is it?

I still don’t understand why [call for a price] functions in this way, it is not logical to me.

You set the price to zero, and then define the zero price action. What if someone calls to order the product, you input in the admin and the price is zero!

Why not add a new setting [allow sale of product] if the setting is true, the product is online for sale. If the setting is false then there an additional setting [show price] where you can either show the price (and still not buy) or you can define a message per product to display instead.

Would this not be a better way to do this?