In the most recent versions of Nasm, "-O1" actually reduces the optimization - "-Ox" is the default. I hope all the error messages were "short jump out of range". If not, that may be a bug(?)...
If "jrcxz" is what you want, that's what you should use. The "third byte" with "jecxz" is 0x67 - the "address size override prefix". Although you might expect 0x66, the "operand size override prefix", 0x67 is correct for "j?cxz" (was a bug in 0.98). "jcxz" is apparently "not supported in 64-bit mode"...
Best,
Frank