"People are blaming Ethereum blockchain congestion at the same time as they write smart contracts that forwards chat-chat messages." - Weiwu ZHANG
The implementation of CryptoKitties makes it not possible to retrieve the balance (when defined as the kitties that an Ethereum address holds) easily. You have to walk through history or go to a 3rd party for it.
ERC 1155 defines how a non-fungible token offloads metadata offchain hosted, accessible via a URL returned by a smart contract function. And it doesn't seem to describe any mechanism to ensure the authenticity of the data.
Also side-chains and payment channels
Where do we draw the line of what goes on-chain, and what doesn't?