With blogdown, the addins and helper function are defaulting to using the current working dir.
So if you work in the parent directory of the site, they would not work well if you are not.
So, in this case I believe you would need to call
blogdown::serve_site(.site_dir = "site")
to serve the site from this subdir. But you can't configure that for the addin for now.
Or you would need to change the working directory to site/ when you are working on the website. This way the addin would work.
blogdown is best working currently when the project directory is the website directory. When using subdir, default behavior could not work properly.
However, in last blogdown version, the Knit button is working now, and when you knit a document in a project, by default, serve_site() will be run if not server is currently running. You should try this because I believe even if the Rmd post is a a site sub-directory, the website will be served correctly.
This is a new feature that works like the Serve Site addin, but will work with a website in a subdir.
Would it work for you ?
We could provide an option to configure this site root dir in the .Rprofile maybe 
If you think it would be useful in addition to the solution above.
Hope it helps