The following code results in a table that 150 pixels tall. Why 150? Is this an SVG quirk or something more general?
https://jsfiddle.net/cc9tyw5v/31/
<table class="root" cellspacing="0">
<tr>
<td>
<svg class="root-symbol" viewBox="0 0 5 6.5" preserveAspectRatio="none" style="height:100%;background-color:lightgreen;">
<text x="0" y="6.5" font-size="9px">a</text>
</svg>
</td>
<td><span style="font-size:2em;background-color:lightblue">I would expect it to be as tall as this span</span></td>
</tr>
</table>
According to this source
The span you are attempting to fit the height of is not the parent of the SVG. It is a sibling, and therefore
height:100%
will not fit its height.