As ianlevesque mentioned in the link below, http://peerjs.com/status is a good overview of current state of data channels. As Firefox stabilizes their WebRTC data channel support, I will implement it. Hopefully there will soon be cross-browser support as well for data channels.
Firefox is currently ahead on the data channel, right? They support sending blobs / arrayBuffers directly, while Chrome doesn't yet have a reliable transport or binary data support.
Your example translates the file into a base64 string to send over the unreliable channel, which ends up being a pretty big performance hit compared to a native binary transport.
All of this is to say: WebRTC is getting there, but it's still going to be several months before it's ready for more than demos like this.
It's true that it supports binary / reliable transport already but there are some very annoying not-to-spec issues. As a library developer, if I added code to support it, it would just go to waste because in BugZilla they've already patched but not pushed changes to these issues.
Depending on how they're writing their files; firefox doesn't support persistent file storage last time I checked.
Firefox does have indexeddb, but if you want to do seek operations you're out of luck.
EDIT: To explain more, without seek writing dealing with large files is incredibly expensive, you have to write everything you've got to indexeddb every time you want to modify it.