There are mixins available to create new buttons. Since buttons are now tied to the BsButtonType enum, a way to create more buttons while still being strongly typed and keeping the overall design philosophy intact is needed.
Also keep in mind that there are components, such as the BsDropdownToggle which build upon buttons, so they also need the same variability.