Like removing and reinserting a battery, a hard power off (holding the power button) typically fixes these glitches for me.
I think it might be a mix of two things.
One of which you mentioned is that you are required to buy another one or have it serviced to replace the battery, both costing more money than simply replacing the battery on your own.
The other is that if you have a removable battery, the battery compartment has to be protected, or else there are points of contact that, if water got in there and touched 2 or more pins of contact between the battery and phone, could result in a fried phone (not entirely sure).
So, I think the major tradeoff was that a phone could be made smaller/slimmer by protecting all of the internals with one seal as opposed to protecting the phone with 2 seals.