With BTI can the attacker not just write a BTI opcode to the start of the jump location? Usually you would jump to a buffer that you control the contents of (i.e. shellcode)
It's very much a cat and mouse game.
The real end game here is memory safety.
Data-only attacks do exist (and are bound to become a lot more common).
Number of ROP gadgets in 6.3-release arm64 kernel
69935
Number of ROP gadgets in 6.4-beta arm64 kernel
46
https://www.openbsd.org/papers/eurobsdcon2018-rop.pdfNote: As described later in the presentation, those 46 remaining gadgets are in the boot code, which is erased after booting.
Harvard Architecture?