The only incompatibility when executing 8080 code on a Z80 is the difference in use of the parity flag in the status register. On 8080, this bit is used only to indicate the parity of a result. On the Z80, the same bit serves to indicate parity, but also to indicate arithmetic overflow. Fortunately, few programs make extensive use of this flag--and even fewer get confused by the Z80's overloading of its use.
Microsoft BASIC was an early casualty of this (it expected strict 8080 operation), but the fix was simple.
If you decide to use a genuine 8080 CPU, be careful of the very early NEC 8080s--they treated the carry flag differently when a subtract was involved. I'd heard that IMSAI picked the old NEC CPUs up cheap for use in their floppy controller, since apparently the difference didn't matter in that application. Fortunately, it's pretty hard to find those early NEC CPUs.