I think I fixed this more-or-less by accident. The "fix", such as it was, has made reproducing the problem impossible, but I want to record it for posterity, and on the off chance somebody else has the problem.
What I did, quite without meaning to address my problem, was select a Mathematica NB file in the Package Explorer and select "Mathematica... > Run" with no Mathematica front end. After I did this, I found that whenever I double-click on a notebook in the "Package Explorer", the notebook will open in the currently running Mathematica application instead of starting a while new instance of the application. I quit Mathematica, and it kept working. I quit Eclipse, and it kept working.
I "Run" notebooks from Workbench much less frequently than I double-click on them, so it's pretty plausible that this is the first time I've run a notebook since switching to this computer. I can speculate that the first time you run a notebook from Eclipse, some initialization file somewhere is updated with the information needed for Eclipse to properly open notebooks in a currently running Mathematica front end, but speculation is all that is.
I think I'll forward this one to the Department of Mysterious Effects.
EDIT to add: When I posted this answer, I was almost disappointed that my issue was gone, because it meant I couldn't reproduce it and try to find out more. Ultimately, though, I was able to resign myself to spending more time working with Workbench and less time cursing at it.
Nonetheless, I was almost happy when it reappeared this morning. On the one hand, it meant that it wasn't actually fixed for good, but it at least gave me a chance to verify whether the steps I thought fixed it were the steps that actually fixed it. I double-clicked to open a notebook, and then "ran" a notebook, and that didn't actually work right; the second notebook opened in a new front end, and quitting both kernels and double-clicking two notebooks proceeded to open two front ends. However, once I started a front end by running a notebook with no other front ends open, the problem disappeared again.
I think this is definitely a bug, though one with a mostly painless workaround.