PATH and CDPATH have special behavior around empty elements. Express this directly in env_stack_t::set rather than via variable dispatch; this is cleaner.