Not exactly: there are two independent working directories: the one for the RStudio File Pane, and the one for the R process.
What you describe is correct for the file pane: when you open a new project, the File Pane will be set by default to the directory where the
.Rproj file is located. If you create a script and save it, it will save there. You can change it by navigating within the File Pane.
But when you open your RStudio Project, the Console Pane starts a R session. This one has also a working directory. By default, it's also the directory where the
.RProj file is saved. So at the beginning of your session, both of these working directories are the same. This one can be seen and changed with the commands jkrideau gave.
But they can change independently. If, in, the File Pane, you create a new directory and click on it, it will open in the File Pane. But if you type
getwd() in the Console Pane, you will see the one from the R session has not changed. Now, in the File Pane, if you click on "More>Go To Working Directory", the File Pane will navigate to the current R session working directory, they match again. Conversely, if you navigate somewhere with the File Pane then click "More>Set As Working Directory", it will automatically write a
setwd() command in the R console, changing the R session's working directory.
The R session working directory is important: if you use a command like
read_csv(), you have to give the path relative to the R session working directory.
Things get even more complicated if you compile an Rmarkdown document: a new R session is created, and the compilation happens in there. But this session can have yet another working directory, typically where the Rmarkdown document is located. That sometimes gives weird errors when you try to read a file within an Rmarkdown document that is saved in a subdirectory.