Well, what happens here is that to get a "good" upper right point, it transforms the upper left and lower right points separately and combines them after the transform. I think that was as generic as I could make it.

The bounding box, being in data space, can have the x or y direction inverted, so a simple max/min won't work. Furthermore, in these skewed coordinates, the upper left has a much lower X coord, so min here breaks pan/zoom for me again.

I'm not really sure what bounding box should result from putting a box through a non-rectilinear transformation. I did the best I could by keeping the transformed lower left and assembling a sensible (or at least moreso than the straight transformed one) upper right.