In the USA, nearly all airfares are changeable, even those that are sold as "non-changeable". In Europe, that's different -- the lowest fare class is often "use it or lose it", with the ticket becoming worthless if you don't get on the flight you booked. If you want to stop airlines from overbooking, then you need to stop travelers from changing their plans and leaving seats empty on the plane.
You can talk about overbooking as "profit motive" for the airline, but airlines traditionally make very low margins. Air travel is a classic oligopoly, where a large number of competitors offer goods that are practically indistinguishable (Coke vs. Pepsi, Shell vs. Exxon, United vs. Delta) -- these industries are characterized by fierce price competition. Ultimately, any decrease in revenue from one source will be reflected in higher average ticket prices.
An airline industry that didn't overbook would be one where either everyone pays significantly more for their tickets, or where most tickets become truly non-changeable, as in you have to buy a totally new ticket if you change your travel date or time.
Honestly, a system like this, where the airline can do yield management transparently, days or weeks before departure, when people have time to weigh their options and make alternate plans, makes tremendous sense and does a lot to allocate costs to those who are willing to pay, keeping things less expensive for those who aren't.