I disagree with many of the choices in this series (for example, I think casting an interface pointer to an inherited interface is fine, and replacing that with QueryInterface just adds unnecessary additional logic), but I don't think any semantics have been changed and overall it's a good cleanup.
Please also consider that many of the objects may be implemented by a someone's else codec dll, and relying on an implementation detail is not acceptable in that case.
An implementation where the two approaches work differently would be wrong. Every interface with IWICBitmapSource methods should implement them in the same way. In cases where it matters we "should" match native which could be doing either.