It seems like Etherscan can detect failed token transfer even though the transaction itself is successful and the gas isn't used completely.
Like in this transfer of Huobi Tokens
Is there a way to detect token transfer failures via RPC on a full non-archive Geth node? eth_getToken and eth_getTokenReceipt seems to produce nothing useful in that regard.