Malte,
Here is what I propose.
Make revision_id a URL variable.
So the url would be
file/12345/filename.ext?revision_id=2345
This is because it only makes sense to use revision_id if very limited circumstances so having the url variable should not be a problem if you set the content disposition header.
I do not agree with duplicating the code in cr_write_content in file.vuh either.
I agree this requires a little more thought and design. give me a couple of days to look into this further.