There is definitely no option like that.
The code that handles def_switchbuf_cd isn't obvious due to performance optimizations.
Code is here in codehelp.e:
void _CodeHelp(bool AlwaysUpdate=false)
{
if (gpending_switchbuf) {
gpending_switchbuf=false;
buf_name:=gpending_switchbuf_buf_name;
if (_isUnix()) {
// If this buffer name has a valid path
if (substr(buf_name,1,1)=="/") {
_str path;
if (_get_filetype_dir_parts(buf_name,path,auto ft_file)) {
} else {
path = _strip_filename(buf_name,'N');
}
// We don't want buffer order changed when if build window
// buffer is activate so here we change the load options before
// calling cd().
old_load_options := def_load_options;
def_load_options=stranslate(lowcase(def_load_options)," ","+bp");
cwd := getcwd();
_maybe_append_filesep(cwd);
_maybe_append_filesep(path);
if (!_file_eq(path,cwd)) {
cd("-a "_maybe_quote_filename(path),"q");
}
def_load_options=old_load_options;
You could resolve "path" using absolute(), in the call to cd(). Changing cd() might be too much of a sledgehammer.