As with switch/case's the printf_P() family doesn't seem to work with PSTR()-strings located in memory above 64K. A lot of 'lpm' instead of 'elpm' in the generated code.
Maby it's the same with the whole '_P' family, haven't tested yet.
Note. This is only an issue when writing bootloaders. I think.
Any known workaround or fiddling with gcc switches?