
Perhaps you remember such a discussion on core-devel quite some time ago. It resulted in a section on Techbase about the topic, with all the explanations why to do it that way. Too bad that the people who create the Microsoft Visual Studio stdlib headers haven't read it. This is too stupid...
I have a project at university where all the filenames start with a long prefix - and that prefix is the same for all the files. Tedious for opening files, even with auto-completion. So I 'ln -s'ed all the files to a filename without the prefix. This broke my build on Windows (the files are made available to a Windows running in VirtualBox, which is why I can use ln -s) as there now was a Math.h file in the directory. And guess what the MSVC compiler did... The <cmath> include has a
#include <math.h>
line which made MSVC include my Math.h file instead of the math.h file lying in the same directory as the cmath file. Just to prove my point I fixed the cmath file to use
#include "math.h"
and now it compiles fine.
So if you write a library and don't know the difference between #include <...> and #include "..." look at that Techbase page again, so that your library won't waste somebodies time like Microsoft just did to me.