The only real distinction between 32 bit ML and 64 bit ML64 is the target market. When ML was released in 1990, it was pointed at the consumer programming market. ML64 is necessary for assembler in 64 bit as CL does not support inline assembler. To do that it must be able to create object modules and with that capacity, it can produce executable code.
The capacities to emulate high level code is of no use to C/C++ programmers so it was never written into the 64 bit version, C/C++ code optimisation has nothing to do with the guts of an asm module and you can routinely write pure mnemonic code that will do the same thing as the emulated high level code. In needing to access an external asm module, there is nothing to collide, the asm code is self contained.
If you have used the 64 bit version for a long time, you will know that it is different from the 32 bit ML.