We ran into a really bizarre bug in SPIRV-Cross which took longer to track down because the disassembly -> assembly loop was not stable, IDs were not preserved when assembling and that affected code output, so I spent a lot of time chasing something which was not what I expected, and if --preserve-numeric-ids was default, that would have made the bug obvious.
KhronosGroup/SPIRV-Cross#858
Please consider changing the defaults so the disasm -> asm loop is more stable.