So, the opcode table's extendable. It'll make language X mode simpler, for some value of X, if that language can load in its own set of extended opcodes. Perhaps someone'll want to do functional programming with the Parrot runtime, and it makes the most sense from a speed and parser simplicity standpoint to treat certain activities as atomic things and emit a single bytecode for them. Extending the opcode table makes sense there. Think of it this way.
Vtable extensions are for extensions to data access.
Opcode extensions are more for extensions to control flow. Both make sense, but there's not really much overlap. And while you can do each with lots of wrapper code and no help from the parser or runtime, they become easier if that help is available.