Yes you can do that with ELF.
The big gotcha is going to be that there are pirq tables current stored at 0xf0000 that you are not going to want to stomp.
Actually thats not that much of an issue. It currently stomps it already
ADLO has that table broken out into a single binary file. All I do is copy the table binary table generated with linubios into the adlo build file and it gets stuck in the adlo image. Loader.s copies it to a specific location. So really if you loaded loader and ADLO code after the linuxbios PIRQ table location and then tweaked loader to not make a PIRQ it should be fine.
Not haveing to do the PIRQ table copy would be nice but its pretty trival. A script to do it automatically would be easy.
The fun question. Can I make the bochs bios useable on a system after the linux kernel has run. Load it with kexec and then boot windows?
If LinuxBIOS is the native bios this should be no extra challenge. If the native BIOS is something else life gets a little more interesting.
That _is_ a fun quesition.. I don't think you would have too many problems though. The ADLO bios is used to running on systems that already have everything setup. It does minimal hardware setup. If you put everything in the right spot and modified the loader so that it didn't copy anything I think it will work.
kexec loads an elf right? So this would be pretty easy to test.