I've heard this kind of confusion before, and after looking at
http://en.wikipedia.org/wiki/Intel_8080 I think I know why:-
At Intel, the 8080 was followed by the compatible and electrically more elegant 8085, and later by the assembly language compatible 16-bit 8086 and then the 8/16-bit 8088, which was selected by IBM for its new PC to be launched in 1981.
It would be easy to think that "assembly language compatible" means that the underlying instructions are identical, but they are radically different. It does suggest though that you can use the same source code and assemble it for different processors, so long as it doesn't need to access anything outside of a 64K block.
Edit: here's a quote from further down the same page:-
The 8080 and 8085 gave rise to the 8086 which was designed as a source compatible (not binary compatible) extension of the 8085.
So, you were actually right in your original post: there's a compatibility between 8080 and 8086 which I wasn't aware of because it doesn't show up at the machine code level, and the fact that the binary isn't compatible may not be a problem for you at all.
Further edit (the next day): I can't see a lot of point though in using 8080 assembly for any part of your OS - the assembly compatibility might conceivably be useful for porting a few complex 8080 progams if they're still of some value to someone, but it certainly isn't going to do anything useful in designing your OS.