But if I extract the private keys of all 7 addresses and individually load one by one address then server will not have any knowledge that all 7 addresses were a part of the same HD wallet.
This would require you to connect to a different Electrum server via a different Tor circuit in between querying each and every address. Simply loading each address in a new wallet one by one, while connected to the same servers from
the same IP, would result in the same situation I have described above, and the server being able to conclude that all addresses have a common owner.
That's what I was asking. The IP or the same tor circuit. When loading it at the same time or even in different time then the server may know based on the IP log or the circuit information.
Owner of the server will know about 7 addresses, they will not know anything about the 13 addresses.
That's not correct. The server owner will know about all 20 addresses. The only reason your Electrum client knows that the 13 empty addresses are empty is because it sends those 13 empty addresses to the server so the server can check if they have transaction history.
It brings me the next question.
What about I create an offline wallet. The all online nodes in other words the blockchain does not have my wallet information. I understand when I will send any BTC to any address of the offline wallet, I can not see them on my wallet since it isn't sync. On the blockchain I can see obviously. How the online existed blockchain already figured out the wallet address belongs to an offline wallet that is already created?