What does WITH FORMAT do on a DIFFERENTIAL backup?
But to use COMPRESSION in a differential backup, I need to use FORMAT. 


I'm not sure why you think you need to use FORMAT at all. This works just fine, I end up with two different differential backup files, each about 80kb:

BACKUP DATABASE db TO DISK = 'c:\bk\dif1.bak' WITH COMPRESSION, DIFFERENTIAL;
GO
BACKUP DATABASE db TO DISK = 'c:\bk\dif2.bak' WITH COMPRESSION, DIFFERENTIAL;


As does writing both differentials to the same file (though I don't know why people like doing this), I end up with a single backup file that contains two differential backups, about 165kb:

BACKUP DATABASE db TO DISK = 'c:\bk\dif.bak' WITH COMPRESSION, DIFFERENTIAL;
GO
BACKUP DATABASE db TO DISK = 'c:\bk\dif.bak' WITH COMPRESSION, DIFFERENTIAL;


As does overwriting the same file each time, I end up with a single differential backup representing the most recent differential backup I took, about 80kb:

BACKUP DATABASE db TO DISK = 'c:\bk\dif.bak' WITH INIT, COMPRESSION, DIFFERENTIAL;
GO
BACKUP DATABASE db TO DISK = 'c:\bk\dif.bak' WITH INIT, COMPRESSION, DIFFERENTIAL;


All of these result in compressed differential backups, and I didn't use FORMAT once.

I don't have a 2008 R2 instance to test, and it might be the case that it is impossible in that version to - say - capture multiple diffs to the same backup file (what the documentation might call a media set, but that was more relevant back in that decade when we used tape drives) and take the first diff compression (or encryption, etc.) and the second one without. Compression on and off is fine in modern versions, though I didn't test encryption. In any case, you won't be in that situation if you make each backup its own file in the first place, which I think is what you should do. 

This makes your question rather academic. But to answer it, for all intents and purposes, FORMAT on a differential backup effectively does the same thing as INIT - it wipes out any previous backups in the file. So with this:

BACKUP DATABASE db TO DISK = 'c:\bk\dif.bak' WITH INIT, COMPRESSION, DIFFERENTIAL;
GO
BACKUP DATABASE db TO DISK = 'c:\bk\dif.bak' WITH FORMAT, COMPRESSION, DIFFERENTIAL;


I end up with the same, single 80kb backup as if I had used INIT in both statements. All older backups in that file, regardless of format, except the last one, are removed.