Trying the feature code from this example of the official fea spec:
lookup REMOVE_CAKRA {
sub ka ka.pas_cakra.ns by ka;
} REMOVE_CAKRA;
lookup REORDER_CAKRA {
sub ka by ka.pas_cakra ka;
} REORDER_CAKRA;
lookup REORDER_CHAIN {
sub ka' lookup REMOVE_CAKRA lookup REORDER_CAKRA ka.pas_cakra.ns' ;
} REORDER_CHAIN;
will fail with an “Expected glyph or glyph class” in the third lookup.
In the above example The desired behaviour is like below:
ka ka.pas_cakra.ns => ka.pas_cakra ka
or in easier names, a b => c a
and you cannot delete some glyphs to make that behaviour.
And in this case, the rule cannot be written in other way, since sub .. by .. rules basically support only “one-to-many” or “many-to-one”, but not “many-to-many” substitutions.