If I understand correctly version of subversion defines:
Working copy formats are major-version specific for the client (ie, don't try to use a 1.4 client on a WC created by a 1.6 client).
Theoretically, old client/new server and vice-versa are OK, but the most testing gets done on same version (1.6.x - 1.6.x) scenarios. Generally you're OK to mix client/server versions, just new features won't be available with the older part (ie, mergeinfo is not available in 1.4 client talking to a 1.5 server, and commits from a 1.4 client would be missing that info). Again, best to stick with same major version, but you can get away with differences if necessary.
Usually you can find the svn library version that a particular client was built against in the release notes.
I would strongly not recommend that you try to use different Subversion clients against the same checkout directory, especially if those are running on different platforms (ie. across a network). Subversion does platform-specific things with line endings on text files, and if you check out on Windows and then check in the same working copy with Linux (for example), you may accidentally touch every line of every file by adding spurious CRLF line endings.
If you are doing cross-platform development, set up a different checkout directory on each platform where you're doing development. If you must share changes before checking in, consider using Git and the git-svn
gateway.
You are very close to the mark. Working copies and repositories are always readable by new clients using the same major version, so a 1.6 client will always be able to handle an older server or working copy.
However, you do still need to be aware of the version supported by each one. Most will automatically upgrade a working copy automatically to their own version; so if you checkout using an older 1.4 client, and update it with a newer client ( eg. the latest svn 1.6); the working copy will no longer be usable will the former.
Most clients will respect the format they find in the .svn directories. That means they won't change it. If they don't support the format, you'll get an error but they shouldn't corrupt the data. If you use several different clients to update/work with the checkouts, they should create locks (so the second client will say that someone else is currently working on the checkout and stop). But to be safe, you shouldn't try this.
Yes, a 1.4 client can talk to an 1.6 server but the new features won't be available.
Usually, the client will say somewhere which server versions it supports but the clients are different projects and have their own version numbering scheme.