When reading the BIP 44 proposal I stumbled upon this paragraph about address discovery:
We scan just the external chains, because internal chains receive only coins that come from the associated external chains.
Is it really enough to scan only the external addresses to recover the full transaction history? What if you are using the same wallet simultaneously on another device and it makes a new transaction using the internal (i.e. change) addresses as the only inputs?
Imagine having a new empty wallet and receiving 1 BTC to your first external address and making a 0.01 BTC transaction to somebody else subsequenly. The remaining 0.99 BTC (minus fee) would be sent to your first change address and subsequent transactions to other wallets could and would use as inputs only change addresses, so scanning the history of your external addresses when rcovering the wallet from zero would reveal only the first and second transaction you made with the wallet, not the subsequent ones.
Is it perhaps enforced to include an external address as a change address in the transaction if all the inputs are internal? What am I missing there?