I accidentally discovered that in mixed form, you can’t make a substitution between the Latin and Cyrillic characters. Separately, the Latin/Cyrillic characters are replaced.
The scripts use classes I created that separate these characters.
You can’t mix OpenType layout features between scripts, as shaping engines will divide text in individual runs per script.