Impacted versions:
At least version 10, version 11(Can only re-produce the problem sometimes)

Steps to reproduce:
Please see this screencast recorded on odoo runbot.
https://youtu.be/cSPQvp9jQJc

Current behavior:
When users search by account in Journal Entries List View. A special value "dummy_account_id" is set in context, in order to facilitate search by account on account.move level.
With this context value , when users create a journal entries, the system will add default value before the creation.

https://github.com/odoo/odoo/blob/fc69b37cf710623ea215cd085e998679d8c50985/odoo/models.py#L3802

This method will set "dummy_account_id" to the previously searched account in vals.

Then the system continue creating account.move and related account.move.line records.
It is fine until the system run this:
https://github.com/odoo/odoo/blob/fc69b37cf710623ea215cd085e998679d8c50985/odoo/models.py#L3830

Since "dummy_account_id" is related field, and it now has value. The system will change the first related  account.move.line record to dummy_account_id.

Eventualy, the account is wrongly set to "dummy_account_id".

Expected behavior:
This is a feature which will fill the form field value with searched value for users. But the journal entry creation should not be affected by dummy_account_id, since it is only for searching purpose.

@Yenthe666 Would you please review this issue and help to bring related odoo staff to this issue?
addons/account/models/account_move.py
""" When removing a full reconciliation, we need to revert the eventual journal entries we created to book the
            fluctuation of the foreign currency's exchange rate.
            We need also to reconcile together the origin currency difference line and its reversal in order to completly
            cancel the currency difference entry on the partner account (otherwise it will still appear on the aged balance
            for example).
        """
        for rec in self:
            if not rec.exchange_move_id or not rec.exchange_partial_rec_id:
                continue
            #rev
            reversed_move_id = rec.exchange_move_id.reverse_moves()[0]
            reversed_move = self.env['account.move'].browse(reversed_move_id)
            #sea
            for aml in reversed_move.line_ids:
                if aml.account_id.reconcile:
                    break
            if aml:
                precision = aml.currency_id and aml.currency_id.rounding or aml.company_id.currency_id.rounding
                if aml.debit or float_compare(aml.amount_currency, 0, precision_rounding=precision) == 1:
                    pair_to_rec = aml | rec.exchange_partial_rec_id.credit_move_id
                else:
                    pair_to_rec = aml | rec.exchange_partial_rec_id.debit_move_id
                #rem
                rec.exchange_partial_rec_id.with_context(full_rec_lookup=False).unlink()
                #rec
                pair_to_rec.reconcile()
        return super(AccountFullReconcile, self).unlink()
    # Do 
    @api.model
    def _prepare_exchange_diff_move(self, move_date, company):