In the component editor, it should be possible to identify equivalent components in one package and swappable pins within one component (e.g. the inputs of an AND or OR gate).
In eeschema, there should also be local ways to add this information. E.g. if the users of an Microcontroller decides that all bits on a port are equivalent because they can pinswap that in software.
In pcbnew, it should be possible to ask for alternatives while routing (UI tbd).
All changes that happen in pcbnew then need to be back-annotated to eeschema.
[ this requires that back-annotation is there]
All changes that happen in pcbnew then need to be back-annotated to eeschema.