I'm pretty sure the combat log is hardcoded to use ChatFrame2. You'd have to write an addon to automatically reorder your frames again after it loads, or to hook whichever function assigns it to ChatFrame2 and assign it to a different frame instead.
I'm also having the same problem. Me thinks the client somehow corrupts the order/savevar were the info on the chat/tabs are saved when you reload your UI. Even if you remove the combat log and do a reload, it'll pop back.
So either it reverts back to how it was at first login or it goes back to the standard layout (General / Combat Log) which kinda makes the whole point of having the option to order your tabs pointless, that or they somehow doesn't want you to reload the interface at all.
It has nothing to do with corrupted configuration files. Look in Blizzard_CombatLog.lua, specifically at the Blizzard_CombatLog_QuickButtonFrame_OnLoad function. It hardcodes the combat log to be part of ChatFrame2; the COMBATLOG constant is defined at the top of the file as a global, but is later upvalued as a local, so changing the global won't do anything. Also, the function is called OnLoad, so hooking probably wouldn't help either. Basically you'd need to write some custom code to reorder your chat frames and reattach the combat log to a different frame after the Blizzard_CombatLog addon loads.
Probably then there's a difference in the order things load between relogging and reloading, and whichever thing (chat config file or Blizzard_CombatLog) loads last get its way. But, the code in Blizzard_CombatLog is the "problem" either way. :p