Currently cairo only returns tight path extents. Computing these extents is more expensive than just using the point extents. For things like invalidation the point extents are usually good enough. Also, these are the extents returned by CGPathGetBoundingBox.
I don't think we'll be fixing this in cairo with our current Azure strategy. Please re-open if you disagree Jeff!