OK, shortly after posting the workaround above, I had a forehead-slapping "Duh!" realization. (I haven't had internet access to share it until now.)
I'm now guessing that direct editing of shareddir.dat will in fact work. I haven't had a chance to verify because I don't have an external volume to test with. Gadsden or somebody will have to test what I'm about to say to make sure.
While Gadsden and I were working through the problem and coming up with the workaround, we went through a process. After protracted efforts to make shareddir.dat work, we finally concluded that it couldn't be made to work. Unfortunately, when new information came to light, I failed to revisit that conclusion and realize it was wrong.
Here's what happened. I had one piece of knowledge and Gadsden had another. It wasn't until after we dismissed shareddir.dat that we put them together. I knew that when you share a directory, you only share the files immediately inside that directory. aMule doesn't traverse subdirectories and share the files within unless you explicitly share the subdirectories, too. Gadsden knew that the directory he was trying to share didn't contain any files, only subdirectories, and those contained files.
So, we never tried the shareddir.dat technique with a directory that actually contained files. Doh!
So, to sum up, it is probable that if you edit shareddir.dat to contain /Volume/volumename/path/to/shared/dir/ paths, that aMule will properly share the files within the named directories. If you have a whole hierarchy of directories that you want to share, you have to add each subdirectory explicitly. The format of shareddir.dat is one path per line. Include the trailing slash ("/") on the path, because that's what aMule does when it edits that file.
Now, the symlink technique does work and has the advantage that you can use the GUI to browse the hierarchy. Also, the GUI has the control-click shortcut for adding a directory and all its subdirectories to the shared set at once. And it's less error prone (no typos, e.g.).
So, now there are two workarounds. Also, there's every reason to believe that fixing the tree control to properly expand /Volumes will in fact solve the problem.
If anybody with an external drive wants to test this, please let us know what you find.