I agree that occasionally the css classes can be changed by Telerik (far less possible going forward than in the past few monts), but think about the two options in Colt's case:
1) You have hundreds of skins that are using hundreds of "hard-coded" stylesheets. If a css class changes you have to do a find and replace in those hundreds of files.
2) You have a single dynamic style sheet that generates all of the needed css classes using properties that are set dynamically. The css class names are hard coded and the settings are dynamic. All you need to do is change the class name in your custom class and it automatically will affect the hundreds of skins.
IMO option 2 is far easier to maintain even if there are drastic changes to the css class definitions in the controls - we just need to make sure Telerik lets us know if / when those changes are made.
Incidentally, I've put this into practice where I created several custom "StyleBuilder" classes where every possible css setting was available via a property; for example, I'm able to use something like:
element = StyleBuilder.GetDefinition("body")
element.Background.Color = "#fff"
element.Layout.Overflow = StyleBuilder.OverflowSettings.Visible
You can see the results of this here:
Hint: At the very bottom of that generated file there are some RadMenu settings ;)