Is there a way to have one of the GoLayout derived classes also layout objects other than Nodes and Links?
As a practical matter, no, although there are probably cases where you could make it work, such as with force-directed. But I’m not sure anyone has tested this.
That shouldn’t be an impediment to doing what you want, though.
OK, so you want to do the regular autolayout, and then in the background fit some shapes to surround some of those nodes.
If you can identify the collection of nodes that you want to gather together inside one shape, you can determine the rectangular area needed to cover them all by using the GoDocument.ComputeBounds method.
That’s just fine for rectangular shapes, and you can adjust for similar shapes such as hexagons, diamonds, and ellipses, but if your shapes want to be irregular, that will be more difficult to code. And you’ll need to worry about overlaps between those shapes.