Currently, transferring ownership of an Ordinal is highly inefficient. Every time you want to send it to someone else, the entire weight of the data must be included in the transaction.
Nope, this part is not true. The inscription is attached (associated) with a particular ordinal (1 satoshi) via an off-chain protocol. When the ordinal is transferred, it is implied that ownership of the inscription data is also transferred. Of course, you cannot actually transfer witness data, but it does not need to be re-inscribed each time when the ordinal moves.
If the data which is actually stored in an Ordinal was nothing more than a pointer, including a signature (witness) and a hash, CID, url or whatever of the actual full-fat data, the misuse of the blockchain could have been mitigated. As it stands it's like cramming in of data, with 0 regard on how that looks being moved around full-fat each time.
Setting a max size on taproot script length is the best chance of mitigating this "misuse," as it appears to me, anyway. What size should that be? I have no idea, but I'd hope that less than 10-20 kb would suffice.