This is correct. This is exactly how it should work.
If you add the change back to the "sendfrom" account, then you would increase the balance of the account. That would be incorrect and bad.
Example:
Account 1 receives 0.5 BTC (unspent output 1 is added to the wallet), account 1 balance = 0.5 BTC.
Account 2 receives 0.5 BTC (unspent output 2 is added to the wallet), account 2 balance = 0.5 BTC.
Account 1 receives 0.5 BTC (unspent output 3 is added to the wallet), account 1 balance = 1.0 BTC.
Account 2 receives 1.5 BTC (unspent output 4 is added to the wallet), account 2 balance = 2.0 BTC.
You decide to send 0.9 BTC from account 1, account 1 balance is reduced by 0.9 BTC to 0.1 BTC.
Wallet chooses to spend unspent output 4 (valued at 1.5 BTC) creating 2 new unspent outputs.
The first unspent output is the 0.9 BTC assigned to the destination address.
The second unspent output needs to go back into the wallet as "change". Therefore, 0.5999 BTC is sent to a wallet change address.
If you added this 0.5999 BTC back to account 1, then account 1 would have the wrong balance (0.6999 BTC instead of 0.1 BTC). Therefore, the correct thing to do is to send the change to an unnamed account that belongs to the wallet.
Think of it like a bank account. When you deposit cash into a bank account your account balance is updated, but they don't keep track of exactly which dollar bills were yours. They just mix them all up in the safe. When you withdraw, you might get different bills than the ones you deposited. If the teller only has $100 bills in their drawer, they'll need to make change at the safe, but the extra change isn't added to your account, it's just eventually sent back into the safe.
Your problem has nothing to do with "change". You are expecting the exact outputs that were received for an "account" to remain associated with that "account". This isn't true at all. It is entirely possible that an output that is received at one account is spent when sending from another account (just like the bills in a bank account). That's why it is possible for an account in the Bitcoin Core wallet to have a negative balance. You can spend more bitcoins than an account has as long as the wallet has enough bitcoins for the transaction.