The Wikipedia page about the 1292 Advanced Programmable Video System claims it was particularly difficult to program:
The user had to be familiar with programming in Signetics 2650 assembly language and the unconventional ways and register architecture of the Signetics 2650 processor. For example, on many other processors an opcode 0 indicates "no operation" whereas on the 2650 it instructs the processor to Branch To Address In Immediate Register B. This was a source of many software debugging hassles for budding home programmers.
It made me curious. Did nearly every other processor and microcontroller back in the 1970's default to opcode $00 equals NOP? So far I have found the following:
Zilog Z80 and Intel 8080: $00 = NOP (No Operation)
Intel 8048 : $00 = NOP (No Operation)
RCA 1802: $00 = IDL (Idle)
So far, so good. But how about the others?
MOS 6502: $00 = BRK (Break, causes an interrupt)
GI CP-1610: $0000 = HLT (Halt, not sure what it does but likely not NOP)
Motorola 6809: $00 = NEG $nn (not entirely sure about this syntax, but at least NEG)
Signetics 2650: $00 = Branch to address in immediate register B (per the Wikipedia article)
I failed to look up what the TMS-9900 and the Fairchild F8 do with opcode $00 or $0000. It seems that Motorola 6801/03 doesn't define $00 at all.
Likely I have missed some relevant processors and microcontrollers of the time, but it seems like the article describes how a programmer used to Intel or Zilog would be confused about the Signetics. Programmers used to MOS, GI or Motorola may have been confused too, but at least not expecting NOP.
Now machine code programming has far more interesting challenges than which instruction equals which value when encoded as binary/hex/decimal data, I would think that works out rather quickly, in particular if you were able to have a cross assembler on some mini computer or similar when developing software for the 1292 APVS series.