With 4.5, there is a new behavior in regards to the automatic creation of entries to Imbalance-XXX (e.g., Imbalance-USD). By default, Gnucash puts these accounts at the top level of the Chart of Accounts. In prior versions, it was possible to move the Imbalance-USD account to another location in the hierarchy (e.g., "Special Accounts:Imbalance-USD"), and Gnucash would continue to use that account in its new location for all automatically-created entries. With 4.5, Gnucash will only place these entries in an existing Imbalance account if that account is at the top level. If the account is not at the top level, Gnucash adds a new Imbalance account at the top level and uses it. It is not clear why this behavior has changed, but I would very much like to have the previous functionality restored.
Fixed in Git for 4.6.