So... to the point: are private-groups usable in go-ssb? sadly the answer is yes and no.
I took over some decryption code for groups that keks wrote around October 2019. He already did the key-derivation and (un)boxing of bytes back then but what was missing is automatic decryption and (re)indexing. As you join/are invited to groups, the database needs to re-read all the messages by that other, find invites to other people and read those. Also care must be taken when crafting invite messages to a group to point to the latest tangle state.
Additionally the old indexing system had no notion of encrypted messages at all.
private.read was just an orthogonal index to all the others. Meaning, you could read all the decrypted ones but you couldn't query: all the messages in this thread and unboxed, please.
So I did all of that and there now is an API to craft those and normal post messages to a group.
The code currently lives here on the appropriately titled Private groups mega PR. The current breakdown is 58 commits with
+7,688 −2,105 changes. At some point it just became to big, and to add more to it I started Leftovers for private groups #67 which which does most of the things above minus the re-indexing and it's text will be the basis for the next post before I will talk about the re-indexing.