I think the \\b at the end of the opcode regexes in ca65.tmLanguage.json means that unary opcodes are only recognized and highlighted correctly if they are followed by extraneous whitespace. For some reason a newline alone doesn't trigger the \b word boundary?
For example, see this screenshot with the scope inspector active:
https://i.imgur.com/GvrwOW9.png

Notice how unary opcodes like clc, dey, and rts are being classified as entity.other.attribute-name instead of the intended support.type, and are therefore being colored differently.