You’ve got it more or less correct.
When you look at Plone, it consists of layers. The basis is Python, on top of that Zope, on top of that the CMF framework (these days a pretty small layer), and on top of that we have Plone.
Products.membrane started out as a framework for creating users as content, which only needed the CMF layer. Maybe even only the Zope layer, but I think CMF was needed. When I look at the latest release, it depends on Plone, so we can ignore compatibility with lower layers. So: it is the basis for users-as-content in Plone.
When you install Products.membrane, you do not yet have a content type that represents a user. Well, there are example types in the code. But as integrator you can create your own content user type that uses Products.membrane. I have one really old Plone 3 site in which I (or colleagues) have done that.
For building content types in Plone, you used to have only one option: Archetypes. Products.membrane did not use this, apart from maybe the example types. The standard add-on for users-as-content was Products.remember. This was built on top of Products.membrane and was using Archetypes as basis for the content type.
Then dexterity came along as option for creating content types. In Plone 5 this really has won the battle with the old Archetypes. If you create a content type in Plone 5, you should use dexterity.
That is what dexterity.membrane is: users-as-content with the dexterity content-type framework as basis, and still building on Products.membrane.
So Products.membrane is the basis, and it is content-type agnostic: it does not use Archetypes or dexterity, and does not mind which of the two frameworks you choose.
For the GSOc, as I understand it, the idea would indeed be to merge Products.membrane and dexterity.membrane. That should simplify the combined code.
To answer your questions:
- Products.remember would still continue to exist, but it does not need to be touched in this project, and it should just use the current version of Products.membrane. The future version of Products.membrane would be incompatible.
- dexterity.membrane is a port of Products.remember to the dexterity system. It is built on top of Products.membrane.