Feature Code question: Back-switching withing single lookup unproblematic?

I use the code in ss02 to switch a single glyph, that has, or has not been swiched already in ss01.

Works great in my environments. But could this cause problems anywhere?

Example:

ss01:

lookup 01{
    sub [a b c] by [a.001 b.001 c.001];
} 01;

ss02:

lookup 02{
    sub a by a.001;
    sub a.001 by a;
} 02;

Your ss02 code should be safe as long as an application follows the OpenType specification. When a lookup is processed, the app is supposed to execute the first matching rule, and then the processing of the lookup is complete. See the spec: “Processing of a lookup is finished when the client locates a target glyph or glyph context and performs the substitution or positioning action described.”

I suppose it’s possible that some apps will mess this up, but I don’t know any.