Essentially, this article recommends that class initialization be explicitly ordered such that derived fields are properly initialized prior to access by overrides/callbacks. Agreed. The problem is with the suggested technique of creating new derived constructors, which appears to have several limitations.
First, as part of its design, a class may only require a single default parameterless constructor, initializing dependency properties to reasonable defaults. While this class could implement ISupportInitialize (supported by the XAML parser) and move dependency property initialization into EndInit, this is unreasonable for programmatic use. More distasteful would be to create an artificial non-default constructor (with a dummy parameter) to house dependency property initialization. This technique assumes that all dependency properties must be initialized with constructor parameters. Sometimes, a default constructor is all you need.
Second, this technique works only when access to derived fields in overrides/callbacks can be ordered in a strictly sequential manner. What about relative ordering of dependency property initializers themselves? What if there are circularities/overlaps of reference. Then overrides/callbacks must still take care to guard against uninitialized field access. And if that's the case, then why go to the trouble of ordering constructor calls?
Third, the requirement that subclasses continue the pattern is not robust or enforceable, or even likely, given that this pattern is arbitrary. Framework designers cannot guarantee correct use of their classes, BY DEFAULT. Derived constructors could mistakenly call non-default base class constructors. Or, derived constructors could reproduce non-default base constructors in the wrong order. Better would be to expose only a default parameterless constructor, along with factory methods to initialize dependency properties, but that also suffers usability problems.
Ideally, standard use of WPF should not necessitate calling overrides/callbacks from constructors. For example, dependency properties could provide an InitValue method that sets a value without invoking any overrides/callbacks. CoerceValue is close, but messy, as it requires a change to the metadata.
As it stands, it seems that the onus of protecting against uninitialized field access in overrides/callbacks must fall upon those methods themselves. Now if only there were an FxCop rule that could detect those references...