no two transactions can have the same transaction hash as far as I understand BIP30
In case of BIP-30, there were the same coinbase transactions in different blocks. But it was no collision there. If you hash the same data, you will get the same result. But if some hash function is broken, then you have two different messages, hashing to the same value. And then, when you download a new block hash, and compute some Merkle Tree, you know, that it contains a given hash, but you don't know, which message was really hashed.
I don't know what benefits one could've from this.
It allows the attacker to fork the network. One node will hear "txid(Alice -> Bob)=0xbadc0ded", and another node will hear "txid(Alice -> Charlie)=0xbadc0ded". In a block number 1234567, everyone will see, that transaction 0xbadc0ded was confirmed, but nobody would know, which version should be used: "Alice -> Bob" or "Alice -> Charlie". Some nodes will hear "Alice -> Bob" first, and they will think, that now Bob has the coins, while other nodes will hear "Alice -> Charlie" first, and they will assume, that Charlie has the coins.
Then, you will have another block, for example 1234600, with transaction "Bob -> Anyone" or "Charlie -> Anyone". And then, one group of nodes will accept it, while another group of nodes will reject it, and mark block 1234600 as invalid (and all blocks on top of it).
Well and how do you control the required Bitcoin node network separation?
By sending different transactions to different nodes. Some will hear "Alice -> Bob" transaction first, and some will hear "Alice -> Charlie" transaction first. Every node will check, that "txid()=0xbadc0ded", so the block number 1234567 will be accepted by everyone, but then, different nodes will save different UTXOs in their database, so when they will see "Bob -> Anyone" or "Charlie -> Anyone" transaction later, some of them will accept it, and some of them will reject it (because the previous output Script will be different).
As miners are usually very well connected to each other, it seems highly unlikely to me to provoke such a malicious chain split and block denial scenario.
Yes, but when you have some new node, then when it starts downloading the chain, you can send "Alice -> Bob" transaction to one node, and "Alice -> Charlie" transaction to another node, during Initial Blockchain Download.