Why is there a Location Type AND a Checkbox for billing addresses?
The location type is mainly as a "safe" way for recording a billing address that may differ from a contact's home, work, or other addresses.  If you make a transaction that records a contact's billing address, you can't reasonably assume that the address is the contact's primary address.  (Maybe it's your home address, or maybe it's the billing department of your employer.)  In fact, there may be a primary address separately recorded on the contribution or event form.

Either way, you need to create an address, not overwrite an existing address, and not imply that it's a home, work, or other type of address.  Consequently, contribution forms will use the "billing" location type and mark that as used for billing.  

(The checkbox is relatively new, too, so there didn't use to be this ambiguity.  However, the checkbox allows you to identify an actual location as the billing address so you don't have duplicate information.)

In practice, it's important to let your users know to use the checkbox, not the location type, for determining whether an address is for billing.

For future versions, I'd suggest that the billing location type wouldn't be necessary if contacts were allowed to have multiple instances of the same location type.  For backwards compatibility, old sites could keep the billing location type, but new sites could just have a new home (or whatever default) address get added and marked as billing.