Xdelta is named after delta (as in 'change') patching, which is handling inserted or deleted information--effectively, cases where the original data in a file is not altered but is offset in some way.
As an example, say you wanted to make a patch to replace the '--' in the first sentence above. XDelta would only store the removal of the '--' and whatever replaced it. Other patchers would have to copy the additional 94 characters that follow it.
So, from that perspective, it matters what alterations you've made to the file. If you've shifted data more than changed it in-place, xdelta would probably be preferable.
In addition, although xdeltas initially appear smaller than other patches, we have to factor in that the data is z compressed. Minor, in-place changes could actually be better expressed in a gzipped ips of all things.
PPF stands for 'Playstation patch file' and was originally designed to circumvent the filesize limitation of IPS. The N64 had its own APS(?) extension which has pretty much died away. That's the biggest reason you see so many of those on modern systems. Over time I suspect they'll gravitate more towards xdelta or similiar formats.
There's also the BPS format which is in development. It's about as small as xdelta and also supports delta mode but significantly less complicated. It makes up for that by being slower to produce, and at this point isn't well known.