O problema é que 100 tokens do batch #1 são diferentes dos 100 tokens do batch #2 porque eles são de lotes diferentes, com validades diferentes.
1000 tokens > 1 ton #1 (ativo real)
600 tokens > 0.6 tons #1 (ativo real)
Sobrando 400 tokens que podem ser trocados por 0.4 tons #1.
Na prática, um ERC 1155 só difere de um ERC 20 no sentido que cada contrato pode conter diversos tokens ao invés de apenas um, portanto há a necessidade de especificar qual token você está transferindo. Não me parece dificil de implementar, mas vai variar dependendo da atual implementação do sistema deles e da mão de obra que cada exchange pode disponibilizar.
O único problema que eu vejo ai é na forma como a exchange vai lidar com essas validades. Por padrão, o token pode expirar e ainda vai existir no sistema deles mas não vai executar os saques (transfers) com sucesso. Eles poderiam talvez verificar a data limite no nível do contrato para "arquivar" o token, mas isso exige uma engenharia customizada e mais mão de obra.
Como funciona tradicionalmente com os NFTs fracionados? Por exemplo, o que acontece se metade dos detentores de frações de uma arte sumirem e coisas precisarem acontecer com a obra física?
Com o fractional.art que eu mencionei acima, os hodlers do token podem votar em um preço de reserva (exige >50% de votos). Se alguém quiser adquirir o NFT por esse preço de reserva, um leilão é invocado. Quem vencer o leilão fica com o NFT e os donos das frações podem trocar seus tokens pela parte equivalente da venda. Se o token não tem preço de reserva (<50% votaram em um preço), não há como o token ficar inteiro caso não hajam todas as partes do token.