Title. I know the controversies about OP_RETURN
First OP_RETURN was formerly called 'data carrier' when it was introduced. Normally this output cant be spent and it does not have to go into the utxo database which can be pruned in most cases. The size was limited to 40 bytes because of some application reasons later it was increased to 80 bytes which we all witness these days.
Is there even a limit that would make a transaction invalid, and therefor make any block containing it invalid?
Yes, there is a limit but you should know that if a transaction has OP_RETURN output with a data that exceed the allowed size limit, that transaction is invalid.