They make sense.
Item 1 is probably the trickiest. Subversion would be awesome for this as it stores the original file + deltas of the changes. Unfortunately, it cannot glean the xref information automatically as the dwg files are binary. However, your c# front end could get this information before the binary is committed to SVN. Then the information could be posted to a SQL database. Another thing to keep in mind is that Subversion does support locking of files that are checked out.
If the c# front end is done correctly, it shouldn't matter what the back end of the system is: storing the files directly in a share, compressing the files, using subversion or storing them in a database as blobs.
For starters, like Mick suggested, things should be kept simple. So I think the method that you outlined would be good for starters. Another good thing would be to map out how you envision the work flow. How would the system work from a users point of view?