Ooh, interesting.
It should work with the .bin file - it will pass through binascii.hexlify() as it doesn't match what is expected, and be accepted by the various methods. Now if you try with that transaction, it won't work because it's spent already; but it decodes properly with the one I tested (try with garbage and you get "decode error", try with this one and you get "rejected").
Great.
Next time I encounter this situation where I have the .bin file but the network hasn't seen it yet I'll try it.