Still there remains the discrepancy between blockchain and my wallet. My client is fully synced.
That's because blockchain is displaying the total value associated with an "address" not with a wallet. A wallet can have hundreds of "addresses".
I guess the the total amount of 1.03 in my wallet is now made up of the 0.99 total of my address 17PmuT7rHcJh5DVenTRD7Nw5ZTjhjWXcyJ plus the 0.04 of the mysterious recipient 1KGnRoxAqffvszcffzf6xfJqKfzNwrdMVP (which is really a new address of mine now).
Bitcoin-Qt just doesn't tell me about the split that happened.
Correct?
Correct. Your wallet now has at least two addresses. The total value being tracked by the wallet is the total value of all the unspent outputs associated with the addresses in its wallet.dat file. You can see these unspent outputs (their values and transactionIDs) if you go to "Help->Debug Window->Console" and enter:
There are other clients/wallets that handle change differently. You can use one of them if you don't like how Bitcoin-Qt handles it.
Some suggestions are:
Armory
Electrum
MultiBit
https://blockchain.info/wallet