Here a short update on the status.
I've successfully transfered a file from Pidgin to a ReceiveFile test application which is based on the Swiften code I've wrote. This isn't stock Pidgin yet, but a special branch which supports Jingle File Transfers which is maintained by Marcus Lundblad.
The scenario that's working is sending a file smaller than 64 KB from Pidgin to ReceiveFile. Smaller than 64 KB because only then Pidgin uses IBB for transport directly and doesn't try S5B before. My code currently only supports IBB and has implemented fallback so far but Pidgin's falling back from S5B to IBB isn't working in this edge case yet.
To get this working a lot fresh code had to be written including but not limited to classes representing Jingle file transfer description and Jingle transport methods, their serializers to turn them into XML and of course corresponding parser classes that take XML and return the OO representation. Not to forget hundreds of lines of testing code which I've loosely based on the example snippets found in the XEPs.
What's next? Getting the sending case working plus validating the fallback scenario against Pidgin.