"PangoMatrix is a struct, so there is no value in using inheritance" is a non-sequitur. A struct just is a class with public members.
The motivation for choosing inheritance here was that this allows passing Transform directly into Pango for operations. This advantage is not realised in our current code base, and doing so does not appear like the best long-term plan since a good long-term plan would likely rather involve using the transform matrices of Cairo since it would make a lot more sense to route the bulk of graphics operations through Cairo than maintaining our own limited and maintenance-intensive set of backends and/or relying on Ghostscript as comparatively computationally expensive intermediary. So while I don't see any objective of value achieved here (the objective of not using multiple inheritance went out the window long ago since it is needed, for example, for determining initialisation order for GC-marked objects), I don't see anything adversely impacted, either. https://codereview.appspot.com/555610043/