How can I do a single SVN commit across multiple externals at the command line?
Unfortunately, your assumption was correct. The current subversion command line tool will not recurse into disjointed externals working copies during a commit. Eclipse probably figures out that it's all rooted the same and adjusts everything so that it's only doing a single commit transaction.
This drawback of the client is actually listed as one of the issues to watch out for when defining externals in your project. As of the 1.6.1 client, this limitation still exists.
You can specify all files and folders you want to commit in the command line client, including the externals. Since the CL doesn't recurse into externals, you have to specify those in your commit command separately:
svn ci working_copy externals1 externals2 -m "log message"
Haven't tried this though. If it doesn't work, you have to specify all the modified files and folders separately, not just the 'root' folders of the externals.
With the latest SVN you can do: --include-externals