I think I have figured it out.
Getting the link_loop[0]
of any BMEdge will result in the first loop of that edge. (in my case, because it’s a boundary edge, it will contain exactly one loop)
Getting link_loop[0].link_loop_next
gets me the second loop of that edge.
These 2 loops contain the UV coordinates of the first and second vertex of that edge.
With this collection of UV pairs I can make edge segments, which I export as SVG
My next step would be to group these loose segments into “ring” groups, to chain them one after another.
This way I can export each SVG shape as a group instead of loose paths.