I didn't completely understand your point about 'change detection' breaking by using this method. Can you elaborate?
Determining whether an address is change is done by some data being missing from the address book. Explicitly importing a change address will set that data, which means that the address will no longer be considered change. This results in some transactions being shown in a confusing manner where change is shown as a new incoming output rather than elided as change.