The return address is saved unsigned on SCS, then a signed copy is saved on the regular stack. At exit, the regular stack copy is authenticated, but then an unsigned copy from SCS is used to transfer control.
It would be better to sign LR before storing to SCS and authenticate after reloading. It would also produce smaller code.
Somewhat relevant: #58072
The return address is saved unsigned on SCS, then a signed copy is saved on the regular stack. At exit, the regular stack copy is authenticated, but then an unsigned copy from SCS is used to transfer control.
It would be better to sign LR before storing to SCS and authenticate after reloading. It would also produce smaller code.