History of OP RETURN
The OP_RETURN opcode has a controversial history that has culminated to it being used as the primary mechanism to store arbitrary data on-chain. The original functionality was intended to behave as a return operation that ends execution of the script. The original implementation of the opcode had a critical bug and was quickly patched by Satoshi Nakamoto.
Original functionality disabled
OP_RETURN was originally intended to return the top value on the stack. Given the script:
OP_TRUE OP_RETURN
True would be returned from the script and the script would terminate, ignoring any opcodes that came afterwards; because of this, this example script could prepend any unlocking script, granting the ability for one to steal anyone's Bitcoin.
The functionality of the opcode was changed to always return false instead of returning the value on top of the stack.