Yikes, my head is spinning.
Your answer, plus other comments in this thread:
1) Illustrates to me what people say when they say the Gedcom standard has fallen out of date and becomes more irrelevant with each passing year that the Gedcom standard is not updated.
2) Suggests a person starting in genealogy should think carefully about the software they want to start with, as the ability to actually transfer data cleanly and completely to other genealogy programs is weak today and getting weaker with each passing year. In short, a person choosing a program today may very well become locked into that program.
I use "role" and "association" as the normal meaning to the words.
Role attaches to an event, and is the role that person played in the event. A baptism can have a person with a role as a godparent, as well as parents, the baby, the attendees, and the priest/preacher. A neighbor in a census is a role in the taking of a census, but could also be an association, ie "Joe is my neighbor". Sam is an executor of a will, Bob is a witness to a will, Jose is a maker to a will. A Will can actually have three events that roles can be attched to: the making of it, the proving of it, and the probating(Inventorying) of it.
Associations attach People to People: Some Associations can also be roles, ie a person being a GodParent is an association, but could be a role in a baptism.
An implementation problem with roles is that there will be persons that will need to exist within a database of persons who have roles in events - who the researcher does not want to have in their list of "names" in their genealogy database. In other words, there would need to be a Role Data Base just like there is a separate database for Places and Sources - to put the preacher at the baptism, marriage, or funeral.