@Lee:
Yes, 100% reproducible.
Rephrasing:
1. Set def_switchbuf_cd = 1.
2. Have a workspace with multiple projects rooted at different subdirectories.
  e.g. project A = c:\src\proja, project B = c:\src\projb, project C = c:\src\projc.
3. Set project A as the current project.
4. Project A should have a custom Build tool with "Run from dir" == %rp. I'm sorry I don't have time to put together a complete self contained repro, but the output in the Build toolbar shows what the cwd is, so regardless of what custom command line you have the Build tool execute, you should be able to observe that the cwd is incorrect.
5. Project A should have "Working directory" set to "." in the Directories tab of the Project Properties dialog.
6. Open some file c:\src\projc\foo\bar.cpp.
7. EXIT SLICKEDIT and LAUNCH SLICKEDIT. This seems to be important for getting it to be 100% reproducible.
8. Verify that the current project is A and the current file is c:\src\projc\foo\bar.cpp (if you have to change the project or the current file then it may interfere with the reproducibility of these specific steps -- exit/launch/etc is not necessary for repro in general, but is part of the "surefire" steps I narrowed down).
9. Choose Build|Build.
RESULT = The Build toolbar starts a build from c:\src\projc\foo.
EXPECTED = The Build toolbar should start the build from c:\src\proja since that is the %rp for project A.
How is "Working directory" used (the field in the Directories tab of the Project Properties dialog)?
Maybe I'm not configuring things correctly? Maybe the documentation needs more detail about the "Working directory" field and the "Run from dir" field and what the various shortcuts (%rp, %rw, etc) mean in the two contexts, so we can understand how to set them to achieve our desired results? I want a way to specify that "%rp" should be interpreted as the directory where the .vpj file is located -- I need a way for project paths/etc to be relative to the location of the .vpj file (absolute paths make it difficult to set up new machines because then I can't just copy .vpj files from another machine with a different parent tree structure).
@Ivan & others:Â What do you have the "Working directory" field set to in the Directories tab of the Project Properties dialog?