I am not talking about the block chain split, even though it could of course be caused by the network split.

I am talking about any substantial amount of nodes somehow get disconnected from the rest of the network and only being interconnected to themselves. Just for the sake of argument, let's talk about 20 nodes (which is still a very low number and would not cause any global problems) being disconnected for even 1 hour. And of course, I am not talking about a bug in the software which causes clients to behave differently, I am talking about the scenario where just due to the uncertainties of the internet, network hardware failures and such those 20 nodes simply are disconnected from the rest.

What is the real probability of this happening? Isn't it really low? Nodes are trying to connect to other random nodes, they don't choose only their neibours, right? So that if for example even 1 of those 20 nodes gets connected to any of the outside nodes, those 20 are not "disconnected from the world" anymore?

The only potential scenario would be isolated locations. There have been instances where a country has become disconnected from the rest of the internet. Some smaller poorer countries may only have a few intra-national links.

If one is concerned the client could be modified to connect to a set of heartbeat nodes. Say 1 in Europe, 1 in US, 1 in Hong Kong. If no longer connected to all 3 there is a good chance you are isolated. The client could display a warning.

In western Europe or the US the odds of this happening as essentially zero though.

Nodes are trying to connect to other random nodes, they don't choose only their neibours, right?

With the amount of hashing on the network, those 20 nodes, even if mining, would not mine enough blocks to reach 6 confirmations anytime soon. If those 20 were disconnected entirely you'ld simply find that no new blocks are arriving. If you require confirmations to be the recommended six blocks, the transactions will never confirm and thus you aren't at risk.

The client can be configured to explicitly connect to certain nodes, so in your example if one of those 20 maintains at least one connection to the outside, all 20 will get the correct block chain.

If you wish to accept on 0/unconfirmed transactions you'ld want to also use a monitoring system that listens for double spend attempts (something that is not yet commercially available though). That would require a continuous connection to the monitoring service though.

Nodes are trying to connect to other random nodes, they don't choose only their neibours, right?

With the amount of hashing on the network, those 20 nodes, even if mining, would not mine enough blocks to reach 6 confirmations anytime soon. If those 20 were disconnected entirely you'ld simply find that no new blocks are arriving. If you require confirmations to be the recommended six blocks, the transactions will never confirm and thus you aren't at risk.

The client can be configured to explicitly connect to certain nodes, so in your example if one of those 20 maintains at least one connection to the outside, all 20 will get the correct block chain.

If you wish to accept on 0/unconfirmed transactions you'ld want to also use a monitoring system that listens for double spend attempts (something that is not yet commercially available though). That would require a continuous connection to the monitoring service though.