I would add the following line to `init.vim`

```
let s:hasfolder=1
let g:foldertogo = '.'

function s:parse_arguments()
 let i = 1
 while i < len(v:argv)
 if v:argv[i][0] == '-'
 let i = i + 2
 else
 let path = v:argv[i]
 if path[len(path)-1] == '\' || path[len(path)-1] == '/'
 let path = path[:-2]
 endif
 if finddir(escape(fnamemodify(path, ':t'), ' '), escape(fnamemodify(path, ':h'), ' ')) != ''
 let s:hasfolder = 1
 let g:foldertogo = v:argv[i]
 break
 else
 let s:hasfolder = 0
 endif
 let i = i + 1
 endif
 endwhile
endfunction

call s:parse_arguments()

if s:hasfolder
 augroup FolderToGo
 autocmd!
 autocmd VimEnter * :execute "cd " . g:foldertogo
 augroup END
endif
```

Here are my observation about the behavior of Vim and Neovim concerning that aspect:
- Vim 9.1 on Windows change to directory
- gVim 9.1 on Windows change to directory
- Vim 9.1 on Linux *don-t change* to directory
- gVim 9.1 on Linux *don't change* to directory
- Vim 8.2 on Windows change to directory
- gVim 8.2 on Windows change to directory
- Neovim 0.95 on Windows *don't change* to directory
- Neovim 0.95 on Linux *don't change* to directory

Summary:
- It seems it change to folder only for Vim under Windows