Companies like BitPay and Electrum, can log my IP when I make a transaction, right? If so, should I use a Web Wallet (plus VPN) for transactions?
HD vs non-deterministic:
"HD" means "hierarchical deterministic".
"deterministic" means: all your private keys are generated from a seed, "knowing your seed = knowing all your private keys", so that frequent backup is no longer needed.
"hierarchical" means: you can manage multiple coins/accounts/address types with only one seed. Watch-only wallets are supposed to import account extended public keys only, instead of the master public key, so that: even if there's a security breach, hardened parent nodes could still protect other accounts from being hacked, as long as the master private key is not leaked.
HD only affects how your private keys are generated and how you should backup your wallet. It has nothing to do with how you broadcast a transaction, nor with your IP address.
Bitcoin-QT was once a non-deterministic wallet: all private keys are independently generated. This might be true even if you are using a modern version of Bitcoin Core (which supports HD since 0.13), since Bitcoin Core won't upgrade a legacy non-deterministic
wallet.dat to HD automatically. You can upgrade it manually by restarting Bitcoin Core with
-upgradewallet command-line argument - of course, you must backup your wallet once again after this operation. BTW, if you enabled wallet encryption, or executed something like
sethdseed in the console, you also need to backup it once again.
However, Bitcoin Core uses hardened address derivation, which means you cannot export any
xpub extended public key to a watch-only wallet. Besides, Bitcoin Core doesn't provide any mnemonic.
Full node vs light-weight client
Full node wallets like Bitcoin Core reconstruct your wallet balance and transaction history by rescaning the whole blockchain locally, so that the receiving privacy is almost perfect - however, this is true only for 3rd party surveillance, your transacting counterparty obviously knows that the address which you gave him belongs to you, so that he can still try to track your transactions, which is exactly why the users are suggested to avoid address reuse (including both receiving and change address).
Light-weight clients like Electrum ask other people for your transaction history and wallet balance, so there are inevitably some privacy leaks. However, Electrum uses TLS to encrypt the traffic, so that your ISP/public WiFi provider/etc won't know your transaction history and wallet balance. You may use Tor to hide your IP address, but the Electrum server is still able to log which addresses have common owner.
BTW: Electrum servers are not controlled by the developers. Anyone is able to spin up his own server to join the network.
As for sending privacy, the Electrum server which you are using obviously knows both your IP address and what transaction you are broadcasting. However, since your connection to the Electrum server is encrypted by TLS, middlemen like your ISP cannot sniff what transaction you are sending.
Bitcoin Core relays other transactions by default, which makes traffic sniffing a little bit tricky, but not impossible still. Anyone who's able to monitor your Internet traffic, including your ISP/public WiFi provider/etc, is also able to find out which transaction is sent by you. Elipse attack is also likely to be a threat. Therefore, to protect your sending privacy, you may use Tor to broadcast your raw transaction (you may use Tor browser with an online block explorer service which supports transaction broadcasting, like this).
Using Tor with full node is still not enough
All bitcoin transactions are public information. For example, sending coins (UTXOs in other terms) which were received from different origins can reveal that they had a common owner (this was mentioned in Satoshi's whitepaper). You may learn some more advanced techniques to protect your privacy further: https://en.bitcoin.it/wiki/Privacy