The cmap mechanism maps character codes to glyph indexes, while the whole OpenType Layout system attach semantic information to the glyphs identitified with glyph indexes. The current de facto standard for character codes are unicode codepoints. However i want to argue that, unicode code points are not real user-perceived characters. So maybe there might be some better choice for the "character code".
it's rather strange to attach semantic meaning to glyphs, as this will effectively prevents the "reuse" or "folding" of same or similar glyph shape across different writing systems. Maybe this will be hard to change at this stage, but maybe we can rethink a little about it.
In real world scenarios, where multiple font faces are needed and used in a "mix-and-match" way in presenting a large piece of text, it can be hard for the OpenType Layout system to work well, since that will be multiple font designer's adjusting parameters cooperating together. I think something higher-level is needed. Something like the TeX community's virtual font mechanism might bring some inspiration.
This is more a discussion than a concrete idea.