It seems that it needs to download the entire blockchain.
I was under the impression that this wouldn't be the case, as the full blockchain is only required
for the transaction history.
Am I wrong?
Bitcoin Core still needs to download and verify the entire blockchain in order to properly function. If it does not know what the current state of the blockchain is, it will not work. Thus it will still be downloading the entire blockchain. The difference between pruned mode and normal mode is that in pruned mode the blockchain will be deleted after it has been downloaded and verified. Only the latest blocks are kept just in case and those are deleted after they become too old.
This. I used importaddress "my-watch-only-address" "" false
With importaddress "my-watch-only-address" I got a "Rescan is ddisabled in pruned mode" error.
Rescanning does not work in pruned mode because the entire blockchain is needed. It has to scan through the entire blockchain for any transactions that pertain to the imported address, but it cannot do this in pruned mode because the entire blockchain is not stored. The reason the first command works is because there is an optional parameter which tells Bitcoin Core whether to rescan. Be default it is true, but you set it to false, so it does not rescan, just adds the address to the wallet.
I was wondering why would it need a rescan. I thought the full blockchain is needed only for the transaction history.
In case that someone doesn't care about the history, why would he just import an address of private key to check balance?
One of the purposes of Bitcoin Core is to serve as a wallet. Rescan is necessary so that the wallet functions properly and can spend all of the Bitcoin actually owned by the user. Because the vast majority of people who import addresses and private keys want to spend the Bitcoin associated with them, the import* methods by default will rescan so that the entire transaction history is known so that the Bitcoin can be properly spent.