Por que os wrappers de propriedade do .NET são ignorados no tempo de execução ao configurar as propriedades de dependência no XAML?

Eu estou lendo o livro de Adam Nathan "WPF 4 Unleashed" e há o seguinte aviso na página 82:

Os wrappers de propriedades do .NET são ignorados no tempo de execução ao configurar as propriedades de dependência no XAML!
Embora o compilador XAML dependa do wrapper de propriedades em tempo de compilação, o WPF chama os métodos subjacentes GetValue e SetValue diretamente no tempo de execução! Portanto, para manter a paridade entre a configuração de uma propriedade em XAML e o código procedural, é crucial que os wrappers de propriedades não contenham lógica além das chamadas GetValue / SetValue. Se você quiser adicionar lógica personalizada, é para isso que os retornos de chamada registrados são. Todos os wrappers de propriedade internos do WPF seguem essa regra, portanto, esse aviso é para qualquer pessoa que esteja escrevendo uma classe personalizada com suas próprias propriedades de dependência.

Minha pergunta é: por quê? Quais são as razões que o WPF chama GetValue () / SetValue () em vez de ler / definir um wrapper de propriedade CLR? Se a razão for que a leitura / definição de um wrapper de propriedade requer reflexão, o WPF usa muito a reflexão ao construir uma árvore de objetos, portanto vale a pena ignorar o uso de wrappers de propriedades e chamar GetValue () / SetValue () diretamente? Ou evitar a reflexão não é a principal razão para tal comportamento?

UPD. Clemens rapidamente deu uma resposta correta, mas eu adicionaria apenas mais uma citação daquela página do MSDN (como eu entendo, o StackOverflow prefere citações a links):

O tipo é consultado por meio de uma combinação de xmlns e atributos de assembly, mas identificar os membros, determinar quais poderiam suportar ser definidos como um atributo e resolver quais tipos os valores de propriedade suportam exigiriam uma reflexão extensiva usando PropertyInfo. Como as propriedades de dependência em um determinado tipo são acessíveis como uma tabela de armazenamento por meio do sistema de propriedades, a implementação do WPF de seu processador XAML usa essa tabela e infere que qualquer propriedade determinada ABC pode ser definida com mais eficiência chamando SetValue no tipo derivado DependencyObject, usando o identificador de propriedade de dependência ABCProperty.