En mi experiencia, el uso de controles de terceros que no son compatibles con el enlace de MVVM dará lugar a la escritura de código en el código detrás del archivo. Esto sucedió incluso para usos simples como seleccionar un elemento actual, leer el elemento seleccionado actualmente, etc. que debería ser bastante simple de implementar en el control pero no lo fue.
Un ejemplo de esto es la propiedad SelectedItem del control Silverlight TreeView, que en lugar de ser DependencyProperty (que es enlazable) es una propiedad normal por lo que no se puede enlazar.
También como se menciona @BoltClock, a veces parece lógico poner algún código en el código detrás del cual están realmente relacionados con lo que hace la vista y no tiene nada que ver con la lógica "detrás" de la vista. Lo mejor es poner este tipo de lógica en el código subyacente.
Observe cómo mi pregunta (y mi propia respuesta) no dicen absolutamente nada sobre MVVM; además del hecho de que WPF y MVVM no son exactamente sinónimos, también dice mucho sobre el alcance del código que se encuentra en ellos. – BoltClock