Not reassuring. If there's money to be made, people will try to make it. It's reasonable to assume a group of friends would take a weekend trying to collude at poker.
There are a few things you could potentially do to make it not worth their time. The first is to take money before assigning a table, and then randomly assigning the person. The second is to have the house take such a large cut that even with collusion it's not profitable.
You still have to worry about Sybil attacks. It's one thing for me and my 3 friends to play poker together and try to land at the same table. It's another for me and my 1000 bots at different IP addresses (bots who will, of course, play computationally perfect games and collude any time they are at the same table) to try and beat the odds.
There are few enough IPv4 addresses that just about any hash forms an injective mapping which can be completely reversed: the best you can do is use something like HMAC and "pepper" it, but that only works if the clients can't verify or generate them.
No, but you can definitely identify collusion. It's really very simple. When you see the guy with JJ fold preflop and the two remaining players have, say, AA and AQ, it suggests that JJ and AA have colluded to keep AQ in the pot. So you build a pipeline to process and detect this sort of thing. It doesn't have to be realtime. Same day would suffice. Besides, you will need hundreds, maybe thousands of hands to classify it reliably.
And you can be certain that none of that is happening in this example and I'd never play there -- unless I wanted to collude with friends.
There is no way to stop serious and experienced collusion from any table in any online poker room in the world.
As others have mentioned, proxies and out of band communication make it nearly impossible to really detect.
That said, detecting blatant or clueless collusion is fairly simple, as things like chip dumping and soft-playing can become fairly obvious just by observing play.