How can I do an in-place import (i.e. add a tree to Subversion such that the original data becomes a working copy)?

You can do this by checking out a directory from the repository directly into an existing directory.

Suppose, for example, that you wanted to put some of /etc under version control inside your repository:
svn mkdir file:///root/svn-repository/etc \
    -m "Make a directory in the repository to correspond to /etc" 
cd /etc
svn checkout file:///root/svn-repository/etc 
svn add apache samba alsa X11 
svn commit -m "Initial version of my config files"

This takes advantage of a feature of svn checkout not immediately obvious: You can check out a directory from the repository directly into an existing directory. Here, we first make a new empty directory in the repository, and then check it out into /etc, transforming /etc into a working copy. Once that is done, you can use normal svn add commands to select files and subtrees to add to the repository.