For dir.create('foo/bar'), a warning is not issued if foo does not exist (and hence bar cannot be created without recursive=TRUE).
Note that I receive appropriate warnings if I do:
> dir.create('foo/bar', recursive=T)
In dir.create("foo/bar") : 'foo\bar' already exists
R version 3.2.1 (2015-06-18)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 8 x64 (build 9200)
 LC_COLLATE=English_Australia.1252 LC_CTYPE=English_Australia.1252 LC_MONETARY=English_Australia.1252 LC_NUMERIC=C
attached base packages:
 stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
I see this on Windows, but not on OSX. It looks as though you were on Windows too. What version?
Actually this affects all Windows versions: in the Win32 part of the code, there was no attempt to give a warning. I've fixed it and will soon commit to R-devel and R-patched.