I'm inclined to say bug, because the output is correct in LaTeX/PDF.
Here is the offending figure:
There is some clash between the info buttons for the long descriptions and the auto-captions for the subfigures, and things aren't in the right place.
It's almost like there is a column break between the info button for the first figure, and its caption.
I am seeing this on both Firefox and Chrome.
I can post the full source if wanted, but I think it's easier to read if I leave out the asymptote code. I don't see anything wrong with how this is structured.
I have:
<figure xml:id="fig_coordplanes">
<caption>The <m>xy</m> plane in (a), the <m>yz</m> plane in (b), and the <m>xz</m> plane in (c)</caption>
<sidebyside widths="33% 33% 33%" margins="0%">
<figure xml:id="fig_spacexy_3D">
<caption/>
<image>
<shortdescription>(Yes, there is one)</shortdescription>
<description>
<p>A longer description is here</p>
</description>
<asymptote label="img_spacexy_3D">
(lots of asymptote code here)
</asymptote>
</image>
</figure>
<figure xml:id="fig_spaceyz_3D">
<caption/>
<image>
<shortdescription>(Yes, there is one)</shortdescription>
<description>
<p>A longer description is here</p>
</description>
<asymptote label="img_spaceyz_3D">
(lots of asymptote code here)
</asymptote>
</image>
</figure>
<figure xml:id="fig_spacexz_3D">
<caption/>
<image>
<shortdescription>(Yes, there is one)</shortdescription>
<description>
<p>A longer description is here</p>
</description>
<asymptote label="img_spacexz_3D">
(lots of asymptote code here)
</asymptote>
</image>
</figure>
</sidebyside>
</figure>