^So is it safe to assume that all of the code above is your own (wrapped around the public libraries we are negotiating) ?
FYI: It should not be necessary to use "simulated glyph metrics" with the GDI based fonts. I remember DrawText will ignore leading and trailing spaces in lines of text so I had to manually calculate the metrics to get correct results. With Unicode there are more than a few kinds of spacing characters, and I did have trouble making sense of the metrics, but eventually I figured them out. They are confusing maybe, but surely they are the same metrics Windows uses under the hood. You just have to spend more time with them I suspect.
Also it's disappointing if Pango requires fonts to be installed. I find it's very helpful to go around the installed fonts with games. The software I have been working with for a while now originated in Japan, and to make it work as intended it's easiest to just deliver the core fonts with it since many people do not have Windows' Japanese fonts installed (Unicode fonts don't really count) plus game authors and translators like to use custom fonts and asking the end user to install fonts for a game on demand is really bothersome, plus the font will remain installed after the game is no more.
PS: I suspect the best approach here would be to use GDI as much as possible on Windows. And do whatever is necessary on Linux with X... possibly going low-level if need be. If Pango will only do installed fonts on Windows it's not going to give you anything (critical) that GDI can't do, so it's probably not worth the dependency in my book. Probably implementing something like ID3DXFont that works with OpenGL (basically what you were originally doing) is a good way to go if the fonts must be displayed with OpenGL.