A couple of months back, I asked this about off-chain views (here).
Now, on the Hangzhou testnet, synchronous on-chain views are supported. (smartpy documentation). Do these views provide synchronicity guarantees? That is, if contract A needs to check token ownership from contract B, would it be possible to have a race condition where the ownership of a token changes before a transaction on contract A is finalized?