The “Why does Bootstrap have nav and nav-stacked as different classes?” was original posted on stackoverflow. You could ask the same for the .btn and .btn-* classes or the .navbar classes and many other classes in Bootstrap’s Less code. In short: CSS size (there’re hundreds of such specific-class/base-class tiers so if each .btn-sm would inherit
Continue reading: Why does Bootstrap have nav and nav-stacked as different classes?