The order on the menu is determined via DefInscription.cs. The first cliloc name is given and each after that is incremented by one.
int index = AddCraft(type, 1044369 + m_Circle,
1044381 + m_Index++, minSkill, maxSkill, m_RegTypes[(int)regs[0]], 1044353 + (int)regs[0], 1, 1044361 + (int)regs[0]);
For the actual crafted spell to match, "public override void InitCraftList()" has to be put in order based on the order resulting from the above.
The first image below shows the available runs of clilocs to list all the spells. Demise currently uses the 3rd column. They can be easily ordered to one of the other 3 lists by changing the 1044381 to one of the numbers on the top row and then adjusting the order of the InitCraftList(). In the second image, the order of OSI craft menu is shown. None of the available sequences perfectly match up with OSI naming and none of them are perfectly alphabetical (see the naming of Level 8 spells and Magic Unlock).
It would seem to me to get this minor inconsistency fixed would require a total rewrite and complication of the coding.