So I've been struggling against versus vertical metrics issues for what seems like my entire career. So since you all know what you're talking about, I wanted to double check that one assumption I make is correct.
In OpenType fonts we've got 3 sets of places to set the ascent and descent (and sometimes linegap), not counting the Ymin and Ymax reported. From what I've seen many applications/programs/systems use one set of these values to space type, but they use the chosen set to set line to line distance as well as the clipping zone. Doesn't this not make sense? It seem that the clipping zone should be set from the Ymax and Ymin values, while the Ascent and Descent values ahould be used for line to line distance.
If that doesn't make sense, picture a block of three lines of text set in Upper and lower case. If for some reason in your font you have an accented lower case character that's exceptionally high, that raises the Ymax considerably. But you might not want to set the ascent to the same value, as the odds of that character appearing directly below a descender are slim. So you've set the ascent to something more reasonable. But you wouldn't want that tall glyph to be cut off if it appeared on the first line of your text block. So in that case, the first line should be placed based on the Ymax in the font, but the following lines should be placed based on the Ascent+descent.
It seems like I've seen the metrics values used for both too often. I should note that there is another way to identify the clipping zone, by using the cached values in the VDMX table. This obviously works well if the calculating and caching program is good, but isn't used often.