When you change the application theme, the controls do not update their default styles as you need to recreate the whole visual tree. You may switch between the themes at runtime, but you will need to reload the whole view. On the other hand, instead of setting application theme, you could use the telerik:StyleManager.Theme attached property on every Telerik control (and some of the standard Silverlight controls) to specify a theme.
I have prepared an example for you that demonstrates how to dynamically change the theme using RadComboBox.
Regarding your second question: The ThemeLocation is an enumeration which is used to distinguish between built-in and custom themes with members Built-In and External.
The Built-In attrubute represents a theme developed by Telerik and hosted in the control assembly.
The External attribute represents a theme hosted in an external assembly.
You may see at the following online help article "Creating a Custom Theme Project - Using the Telerik Approach" that is defined a non-existent file Generic.xaml. Thus when the Telerik StyleManager uses a Theme class with ThemeLocation=BuiltIn, it ignores the path to the XAML file and replaces it with ";component/themes/[control assembly].xaml". In this example the Telerik StyleManager will replace the
provided path with "/MyTheme;component/Themes/Telerik.Windows.Controls.xaml".
the Telerik team