Xaml является отдельным от кода С#, поскольку позволяет этим элементам быть "мягко закодированным". Если вы скомпилируете код Xaml в С#, вы проиграете этот признак, потому что теперь элементы пользовательского интерфейса, привязка данных, события и т.д. Теперь жестко закодированы в программе, и вам необходимо перекомпилировать всю программу, чтобы внести незначительные изменения в пользовательский интерфейс.
Сообщение в блоге, которое petr k. ссылки говорят, что Xaml фактически был скомпилирован в IL, но Baml теперь используется, потому что:
Он более безопасен (он не может быть выполнен напрямую) и
Baml может быть локализован (на разных языках) без необходимости перекомпиляции.
Ответ 3
В теории все XAML могут быть скомпилированы с эквивалентным С# (хотя BAML используется на практике).
Его плагин для Visual Studio 2010, который позволяет вам скомпилировать XAML в эквивалентный С#, его действительно интересно понять, как XAML скомпилирован в С#.