This is simple. I found this solution when used CMake generated make files for LLVM project.
Now, TheIDE will compile FileName.cpp to FileName.obj object file. CMake generated make file will compile it to FileName.cpp.obj. No more extension clashes in last case.
This is only one operation in the Builders code:
Changing GetFileTitle(fn) to GetFileName(fn) function where object file will be created.
I am sorry for perhaps too much thinking about the issue... Still, if you put a file to compiler in commandline, it just replaces the extension with ".o" (or ".obj"). So the proposed change is diverging from this practice.
But I think very likely I will do it as you suggest.